当前位置: 首页 > news >正文

找个专门做各种外卖的网站做酒业网站的要求

找个专门做各种外卖的网站,做酒业网站的要求,外国个人主页网站欣赏,用reset插件 复位WordPressMybatis的事务管理机制 在mybatis-config.xml文件中.可以进行mybatis的事务管理 transactionManager typeJDBC/ type的值有两个 JDBCMANAGED JDBC事务管理器 mybatis框架自己管理事务#xff0c;自己采用原生的JDBC代码去管理事务 底层创建的事务管…Mybatis的事务管理机制 在mybatis-config.xml文件中.可以进行mybatis的事务管理 transactionManager typeJDBC/ type的值有两个 JDBCMANAGED JDBC事务管理器 mybatis框架自己管理事务自己采用原生的JDBC代码去管理事务 底层创建的事务管理器对象是JdbcTransaction对象 conn.setAutoCommit(false);开启事务 进行业务处理 conn.commit()手动提交事务 SqlSession sqlSession sqlSessionFactory.openSession();//如果使用事务管理器是JDBC的话实际上会执行:conn.setAutoCommit(false) sqlSession.commit();//如果使用的事务管理器是JDBC的话实际上会执行:conn.commit() 不建议传入参数true SqlSession sqlSession sqlSessionFactory.openSession(true); 如果传入了参数true那么底层就不会执行conn.setAutoCommit(false)那么autoCommit就是true 如果autoCommit是true就表示没有开启事务只要执行一条sql语句就提交一次 MANAGED事务管理器 mybatis不再负责事务的管理事务管理交给其他容器来负责 当以后ssm框架进行集成的时候可以用MANAGED 但只有mybatis的框架时如果配置managed那么这块事务是没人管的表示事务没开启 Junit单元测试 先引入单元测试的依赖 然后在test包下创建类起名规范就是要测试的类加Test 测试方法要加注解Test说明这个方法是测试方法 单元测试中有两个重要的概念 实际值被测试的业务方法的真正的执行结果期望值执行了这个业务之后你期望的执行结果是多少 最后加断言进行测试 Assert.assertEquals(expected,actual) Mybatis的日志信息 Mybatis配置日志信息需要在核心配置文件中进行配置 Mybatis已经对STDOUT_LOGGING进行了实现只需要开启即可 但STDOUT_LOGGING的日志信息不够丰富如果想用丰富的要引入第三方组件 settings setting namelogImpl valueSTDOUT_LOGGING/ /settings 集成logback日志框架 引入logback的依赖引入logback所必须的xml配置文件 这个配置文件的名字必须叫做logback.xml或者logback-text.xml不能是其他的 这个配置文件必须放到根路径下不能是其他位置 ?xml version1.0 encodingUTF-8 ?configuration debugfalseappender nameSTDOUT classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.classic.encoder.PatternLayoutEncoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/pattern/encoder/appenderlogger namecom.apache.ibaits levelTRACE/loggerlogger namejava.sql.Connection levelDEBUG/loggerlogger namejava.sql.Statement levelDEBUG/loggerlogger namejava.sql.PreparedStatement levelDEBUG/loggerroot levelDEBUGappend-ref refSTDOUT/append-refappend-ref refFILE/append-ref/root/configuration如果使用的是标准的日志需要配置settings如果使用的第三方组件就不用配置了 Mybatis封装工具类 //一个sqlSessionFactory对应一个environment一般一个environment对应一个数据库 //所以调用openSession的时候不用每次都创建sqlSessionFactory对象 //写在类加载器中即可public class MybatisUtil {private static SqlSessionFactory sqlSessionFactory;static {try {sqlSessionFactory new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(mybatis-config.xml));} catch (IOException e) {throw new RuntimeException(e);}}private MybatisUtil() {}public static SqlSession openSession() {return sqlSessionFactory.openSession();} }Mybatis的CRUD C:Create(增)R:Retrieve(查)U:update(改)D:delete(删) 在mybatis当中的占位符是#{} Map集合传值 #{}传入的值是map的键 MapString,Object map new HashMap();map.put(k1,1111);map.put(k2,比亚迪汉);map.put(k3,10.0);map.put(k4,2020-12-11);map.put(k5,电车);//第一个参数是sql语句的id//第二个参数是封装数据的对象sqlSession.insert(insertCar,map);insert into t_car(id,car_num,brand,guide_price,produce_time,car_type) values (null,#{k1},#{k2},#{k3},#{k4},#{k5}) POJO类传值 #{}传入的值是POJO类的属性值 SqlSession sqlSession SqlSessionUtils.openSession();Car car new Car(null, 1112, 凯的拉克CT6, 55.0, 2023-12-10, 电车);sqlSession.insert(insertCar,car);sqlSession.commit();sqlSession.close();insert into t_car(id,car_num,brand,guide_price,produce_time,car_type) values (null,#{carNum},#{brand},#{guidePrice},#{produceTime},#{carType})严格意义上来说如果使用POJO类传值的话#{}中实际上是mybatis调用get方法去掉get再把剩下的单词首字母小写 #{name}-#{getName} mybatis的删除 delete iddeleteCardelete from t_car where id#{id}/deletesqlSession.delete(deleteCar,15); Mybatis的更新 public void testUpdateCarById(){SqlSession sqlSession SqlSessionUtils.openSession();Car car new Car(5L,9999,凯美瑞,30.0,2023-12-10,燃油车);sqlSession.update(updateCar,car);sqlSession.commit();sqlSession.close();}update idupdateCarupdate t_car setcar_num#{carNum},brand#{brand},guide_price#{guidePrice},produce_time#{produceTime},car_type#{carType}whereid#{id}/update Mybatis的查询 mybatis中查询的时候mybatis底层执行了select语句之后就一定会返回一个结果集ResultSet 需要在select标签中指定resultType来确定ResultSet封装成什么类型的Java对象 Testpublic void testSelectCarById(){SqlSession sqlSession SqlSessionUtils.openSession();Object o sqlSession.selectOne(selectCar, 1);System.out.println(o);sqlSession.close();} }select idselectCar resultTypePOJO.Carselect *from t_carwhere id#{id}/select 查询时如果结果中的列名和封装对象中的属性名不对应那么就赋不上值 select idselectCar resultTypePOJO.Car select id,brand,car_num as carNum,guide_price as guidePrice,produce_time as produceTime,car_type as carType from t_car where id#{id} /select Mybatis查询所有 //resultType是封装的结果集类型不是指定List的类型是指定List集合中的元素类型 select idselectAll resultTypePOJO.Car select id,car_num as carNum, brand ,guide_price as guidePrice, produce_time as produceTime,car_type as carType from t_car /selectTestpublic void testSelectAll(){SqlSession sqlSession SqlSessionUtils.openSession();ListObject Cars sqlSession.selectList(selectAll);Cars.forEach(car- System.out.println(car));sqlSession.close();} Mybatis中的namespace 在sqlMapper.xml文件当中有namespace这个属性是用来指定命名空间的用来防止id重复 本质上mybatis的sql语句的写法是namespace.id为了防止id重复 Mybatis的核心配置文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/mybatistest/property nameusername valueroot/property namepassword valueabc123//dataSource/environment/environmentsmappersmapper resourceCarMapping.xml//mappers /configuration environments是指mybatis的环境mybatis中可以有多个环境一个环境对应一个数据库 一个数据库对应一个SqlSessionFactory对象 default指的是默认使用的环境指定environment的id 当创建SqlSessionFactory的时候没有指定使用哪个环境就是用默认的环境 Mybatis的事务管理器 transactionManager是事务管理器指定mybatis具体用什么方式去管理事务 第一个JDBC使用原生的jdbc代码来管理事务第二个MANAGEDmybatis不再负责事务管理将事务管理交给其他的容器来管理 在Mybatis中提供了事务管理器接口Transaction 接口下有两个实现类JdbcTransactionManagedTransaction 如果typeJdbcTransaction 那么底层会实例化JdbcTransaction对象 如果typeManagedTransaction 那么底层会实例化ManagedTransaction对象 Mybatis的数据源 dataSource被称为数据源 dataSource为程序提供Connection对象但凡是给程序员提供Connection对象的都叫数据源 数据源实际上是一套规范JDK中有这套规范javax.sql.DataSource(这个数据源的规范这套接口实际上是JDK规范的) 我们自己也可以编写数据源组件只要实现javax.sql.DataSource接口就行了实现接口中的所有方法这样就有了自己的数据源 数据库连接池是提供连接对象的所以数据库连接池就是一个数据源组件 type属性是用来指定数据源的类型就是指定具体使用什么方法来获取Connection对象 type的属性值有三个 UNPOOLED不使用数据库连接池技术每一次请求过来之后都是创建新的Connection对象POOLED使用mybatis自己实现的数据库连接池JNDI集成其他第三方的数据库连接池 JNDI是一套规范大部分web容器都实现了JNDI规范 Mybatis的properties标签 java.util.Properties类是一个Map集合key和value都是String类 properties是为了让核心文件的配置更灵活 propety name属性名 value属性值 / properties resource配置文件名 /
http://wiki.neutronadmin.com/news/377743/

相关文章:

  • 连州市网站建设网上哪个网站教做西点
  • 镇江网站建设国内顶尖的公司
  • 高档手表网站wordpress 制作企业站
  • 项城网站制作多少钱如何查域名备案信息查询
  • 网站开发程序流程图织梦模板首页修改
  • 学会网站开发需要多久上海建设网站
  • sql wordpress迁移网站推广教程优化整站
  • win2003搭建php网站广州市住房 建设局网站
  • 怀化网站制作建设木藕设计网
  • 中小企业做网站推广wordpress栏目布局
  • 杭州网站建设出 名好看的手机网站布局
  • 上市设计公司网站短网址还原网站
  • 河北seo网站优化公司论坛创建
  • iis部署网站 asp 物理路径求网站建设合伙人
  • 选择手机网站建设电商网站用什么做最好
  • 北京交易网站建设wordpress多图主题
  • wordpress站中站wordpress工具包
  • 电子商务网站建设感想十堰做网站排名
  • 下载网站备案的核验单农产品应该建设哪个网站
  • 网站外链隐形框架是什么如何选择网站建设案例
  • 怎么建设课程的网站苏州公司网站建设电话
  • 常熟做网站多少钱按html5制作网站开发
  • 银川市做网站的公司二维码生成短链接
  • 建湖网站设计邢台网站建设设计制作
  • 泰州做网站的公司市场营销实务
  • 网站黑白了网站开发平台及常用开发工具
  • 新站如何让百度快速收录简速做网站工作室
  • 音乐网站设计模板行业协会网站模板
  • 深圳市住房和建设网站ps做网站动图
  • 好的用户体验网站 学校小企业网站建设哪家便宜