导入架包,提取码(8toe)
构建mybatis-config.xml核心配置文件,例如
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 加载数据库配置信息 --><properties resource="database.properties"></properties><!-- 设置日志行为 --><settings><setting name="logImpl" value="LOG4J"></setting></settings><!-- 设置类型别名 --><typeAliases><!-- <typeAlias alias="User" type="com.apeman1024.mybatis.User"/>--><package name="com.apeman1024.mybatis"/></typeAliases><!-- 配置运行环境 --><environments default="dev"><!-- 不同的运行环境 --><environment id="dev"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment><environment id="test"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment><environment id="pro"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment></environments><mappers><mapper resource="com/apeman1024/dao/UserMapper.xml"/></mappers></configuration>
- 配置log4j.properties文件
log4j.rootLogger =debug,stdout,logfilelog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout = org.apache.log4j.SimpleLayoutlog4j.appender.logfile = org.apache.log4j.FileAppenderlog4j.appender.logfile.layout = org.apache.log4j.PatternLayoutlog4j.appender.fileAppender.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss}log4j.logger.com.ibatis=DEBUGlog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUGlog4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUGlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUGlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG
- 配置database.properties文件
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/qidi?useUnicode=true&characterEncoding=utf8username=rootpassword=root
编写相应的映射文件UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.apeman1024.dao.UserMapper"><select id="count" resultType="int">select count(1) from user</select><!-- <select id="userlist" resultType="com.apeman1024.mybatis.User">select * from user</select>--><select id="userlist" resultType="User">select * from user</select><select id="getUser" resultType="User">select * from user</select></mapper>
- 搭建工具类 ``` import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Util { private static SqlSessionFactory sqlSessionFactory ; static { String path=”mybatis-config.xml”; InputStream inputStream; try { inputStream = Resources.getResourceAsStream(path); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); }
}public static SqlSession getSession() {return sqlSessionFactory.openSession();}
}
-sqlSession使用的两种方式
@Testpublic void test01() {//mysql读取数据库的第一种方法SqlSession session = Util.getSession();int selectOne = session.selectOne("com.apeman1024.dao.UserMapper.count");System.out.println(selectOne);}@Testpublic void test02() {//mysql读取数据库的第二种方式,需要构建接口类,推荐使用SqlSession session = Util.getSession();Integer count = session.getMapper(UserMapper.class).getCount();System.out.println(count);}
-mybatis中的属性resultType和resultMap的区别:[区别](https://www.jianshu.com/p/df86cb39d672)-mybatis中的insert和update以及delete默认不自动提交-mybatis中当属性列允许为空时最好指定一下属性列的jdbsType类型:[类型映射](https://blog.csdn.net/bisal/article/details/82775403)-mybatis在传递多个参数时: 在多个参数的情况下,默认它们将会以 param 加上它们在参数列表中的位置来命名,比如:#{param1}、#{param2}等。如果你想(在有多个参数时)自定义参数的名称,那么你可以在参数上使用 @Param("paramName") 注解。-mybatis分页查询的方法:为映射方法添加RowBounds实例,其中在RowBounds构造方法中的参数offset:在结果集的第offset个元素开始取,limit指:取多少个元素```javaList<User3> getUs1(@Param("mm") Object m,RowBounds ro);//映射方法//RowBounds ro=new RowBounds(1,2);List<User3> us1 = session.getMapper(IdMapper.class).getUs1("111",ro);
