做网站链接还要服务器吗买,怎么发布网站,wordpress如何跳转页面步骤,西安网站托管维护Mybatis概述
Mybatis是一个半自动化的框架#xff0c;需要自己写sql语句#xff0c;对比JDBC其有耦合性更低的SQL语句与Java代码#xff0c;各司其职不相互冗杂#xff0c;对比Hibernate与JPA其又有更灵活的SQL编写能力。
环境搭建
引入相关依赖并打jar包 dependenc…Mybatis概述
Mybatis是一个半自动化的框架需要自己写sql语句对比JDBC其有耦合性更低的SQL语句与Java代码各司其职不相互冗杂对比Hibernate与JPA其又有更灵活的SQL编写能力。
环境搭建
引入相关依赖并打jar包 dependencies!-- Mybatis核心 --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.7/version/dependency!-- junit测试 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!-- MySQL驱动 --!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdversion8.0.32/version/dependency/dependencies在resource下新建mybatis-config.xml文件并粘贴以下配置
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configuration!--设置连接数据库的环境--environments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/MyBatis/property nameusername valueroot/property namepassword value123456//dataSource/environment/environments!--引入映射文件--mappersmapper resourcemappers/UserMapper.xml//mappers
/configuration在mapper文件夹下创建UserMapper接口每张表对应一个Mapper接口
在resource下创建xml配置文件
在mapper标签下进行sql语句的编写
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.qinghe.mybatis.mapper.UserMapper/mapper例如一个insert语句
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
!--注意这个地方的namespace要与自己的mapper接口保持一致--
mapper namespacecom.qinghe.mybatis.mapper.UserMapper!-- 注意此处的id作用是唯一标识sql语句id名必须与mapper接口中的方法名一致--insert idinsertUserinsert into t_user values(null, admin, 123456, 23, m, 123456qq.com)/insert/mapper一个插入语句的示例
创建一个mapper层的接口
public interface UserMapper {/*** 添加用户信息* return*/int insertUser();
}
在test中的测试如下
public class MyBatisTest {Testpublic void testMyBatis() throws IOException {//加载配置文件InputStream is Resources.getResourceAsStream(mybatis-config.xml);//获取SqlSessionFactoryBuilder工厂模式SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder();//获取sqlSessionFactory传入配置文件的流信息SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(is);//获取sqlSessionsqlSession是数据库与Java进行数据交换的中介就像是HttpSession时浏览器与Java的中介一样//openSession中的参数true为自动提交的意思SqlSession sqlSession sqlSessionFactory.openSession(true);//获取mapper接口对象getMapper(CLassT)方法使用代理模式在底层创建了一个UserMapper对象并赋值给mapperUserMapper mapper sqlSession.getMapper(UserMapper.class);//调用方法int result mapper.insertUser();//提交事务语句必须执行过事务提交之后才会在数据库显示//要么在sqlSessionFactory创建对象时开启自动提交要么就手动提交
// sqlSession.commit();System.out.println(result result);}
}添加日志功能
在resource文件夹下创建日志的配置文件log4j.xml并添加如下配置
?xml version1.0 encodingUTF-8 ?
!DOCTYPE log4j:configuration SYSTEM log4j.dtd
log4j:configuration xmlns:log4jhttp://jakarta.apache.org/log4j/appender nameSTDOUT classorg.apache.log4j.ConsoleAppenderparam nameEncoding valueUTF-8 /layout classorg.apache.log4j.PatternLayoutparam nameConversionPattern value%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n //layout/appenderlogger namejava.sqllevel valuedebug //loggerlogger nameorg.apache.ibatislevel valueinfo //loggerrootlevel valuedebug /appender-ref refSTDOUT //root
/log4j:configurationMybatis-config.xml配置文件详解
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configuration!-- 配置jdbc.properties文件使数据库的连接属性们从jdbc.properties读取--properties resourcejdbc.properties /
!-- typeAliases是设置别名的意思其将全类名设置别名为最后的类名--typeAliases
!-- type属性是要设置别名的类alias属性是设置的类名alias属性可以不进行设置若不进行设置则其默认的别名就是类名且不区分大小写若设置了alias就区分大小写了严格按照设置的alias属性进行匹配
--typeAlias typecom.qinghe.mybatis.pojo.User aliasUser/typeAlias
!-- 也可以以包为单位将包中的所有类都设置为默认的类名的别名不区分大小写--package namecom.qinghe.mybatis.pojo/package/typeAliases!--设置连接数据库的环境--environments defaultdevelopmentenvironment iddevelopment
!--transactionManager标签JDBC表示使用原生的JDBC事务管理方式例如commit和rollbackMANAGED表示被管理的事务管理方式例如被Spring管理等
--transactionManager typeJDBC/
!--设置数据源POOLED表示使用数据库连接池缓存进行连接UNPOLLED表示不使用数据库连接池JNDI表示使用上下文中的数据源
--dataSource typePOOLEDproperty namedriver value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//dataSource/environment/environments!--引入映射文件--mappers
!-- 这样是引入单个映射--
!-- mapper resourcemappers/UserMapper.xml/--!-- 使用package标签可以做到引入一个包下的所有映射文件的效果--
!--***************************注意mapper接口所在的包的包名必须也映射配置文件所在的包名一致mapper接口的名字也必须与xml文件的名字保持一致*****************************
--package namecom.qinghe.mybatis.mapper/package/mappers
/configuration