未分类
2020-12-18 11:38:02
1822677238@qq.com
手机扫码查看
2020java框架教程之Mybatis入门
大纲:
1.Mybatis 持久层:简化工作量,灵活
2.spring 粘合剂:整合框架、AOP、IOC、DI
3.SpringMVC 表现层:方便前后端数据的传输。
1.什么是Mybatis
a.Mybatis是对jdbc的封装
b.将SQL语句放在映射文件中(xml)
c.自动将输入参数映射到sql语句的动态参数上
d.自动将sql语句执行的结果映射成java对象
2.Mybatis入门
a.创建web项目
b.导入相关依赖:
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>org.wisdom-framework</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34_1</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency>
3.加入配置文件
a.database.properties
#连接设置 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8 username=root password=root #<!-- 初始化连接 --> initialSize=10 #最大连接数量 maxActive=50 #<!-- 最小空闲连接 --> minIdle=5 #<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 --> maxWait=5000
b.log4j.properties
#log4j.rootCategory=INFO, stdout
log4j.rootCategory=error, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n
#log4j.category.org.springframework.beans.factory=DEBUG
log4j.category.org.springframework.beans.factory=error
c.mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--引入数据库连接配置 -->
<properties resource="database.properties"/>
<!--定义别名-->
<typeAliases>
<package name="mybatis.entity"/>
</typeAliases>
<!--定义数据源-->
<environments default="development">
<environment id="development">
<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="MybatisMapper.xml"/>
</mappers>
</configuration>
d.映射文件 MybatisMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mybatis.dao.UsersDao">
<!-- 通过 id 查询用户 -->
<select id="selectUser" resultType="Users" parameterType="int">
select * from users where id = #{id}
</select>
</mapper>
parameterType类型:

4.编写接口
public interface UsersDao {
Users selectUser(Integer id);
}
5.创建实体类
6.创建工具类
public class MybatisUtils {
private static SqlSessionFactory ssf;
static{
try{
InputStream in= Resources.getResourceAsStream("mybatis-config.xml");
ssf=new SqlSessionFactoryBuilder().build(in);
}catch (Exception e){}
}
public static SqlSession getSqlSession(){
return ssf.openSession();
}
}
目录结构

7.创建测试用例
public class Tests {
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UsersDao mapper = sqlSession.getMapper(UsersDao.class);
Users users = mapper.selectUser(1);
sqlSession.close();
System.out.println(users);
}
}

不使用接口方法
public class Tests {
@Test
public void test2(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
Users users = (Users) sqlSession.selectOne(
"mybatis.dao.UsersDao.selectUser", 2
);
sqlSession.close();
System.out.println(users);
}
}



发表回复