java框架记录学习(Mybatis第二篇)
1.对数据库进行增删查改
1.1需要注意的问题
(1)增删改需要提交事务,在test方法中加入提交事务代码:
//运用sqlsession提交事务
sqlSession.commit();
(2)模糊查询:
java代码:
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userDao = sqlSession.getMapper(UserMapper.class);
List<User> userList = userDao.getUserLike("%李%");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
接口中的方法设置:
List<User> getUserLike(String name);
对应的xml文件中的sql语句:
<select id="getUserList" resultType="com.mybatis.pojo.User">
select * from navy.user where name like #{value}
</select>
2.环境配置
Mybatis的默认的事务管理器是JDBC(还有一种为MANAGED,不常用),连接池为POOLED(其他还有:UNPOOLED,JNDI)
3.属性(properties)
可以使用properties属性来引用配置文件
新建一个db.properties
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username = root
password = admin
在Mybatis文件中进行配置使用:
<properties resource="db.properties"/>
<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>
注:配置的编写有其规定的顺序,顺序不对也会报错,需要注意。
4.类型别名(typeAliasea)
给实体类起别名:
第一种:
<typeAliases>
<typeAlias type="com.mybatis.pojo.User" alias="user" />
</typeAliases>
第二种:
<typeAliases>
<package name="com.mybatis.pojo" />
</typeAliases>
第二中配置之后,包下所属的实体类的包的默认别名为实体类名首字母小写
第三种:
使用@Alias(“别名”)注解进行配置。
5.映射器(Mappers)
绑定mapper文件:
方式一:
<mappers>
<mapper resource="com/mybatis/dao/UserMapper.xml"/>
</mappers>
方式二:
<mappers>
<mapper class="com.mybatis.dao.UserMapper"/>
</mappers>
注:配置文件与其对应的接口文件需要放在一起,且名称需要相同
方式三:
<mappers>
<mapper package="com.mybatis.dao"/>
</mappers>
注:需要注意点与方式二相同
6.结果集映射
接口对应的配置文件里设置:
<resultMap id="userMap" type="user">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserList" resultMap="userMap">
select * from navy.user
</select>
其中 column对应数据库中的字段,property对应实体类的属性。