Mybatis培训教程

3. 操作users表的CRUD

3.1. XML的实现

1). 定义sql映射xml文件:

<insert id=”insertUser” parameterType=”com.atguigu.ibatis.bean.User”>

insert into users(name, age) values(#{name}, #{age});

</insert>

 

<delete id=”deleteUser” parameterType=”int”>

delete from users where id=#{id}

</delete>

<update id=”updateUser” parameterType=”com.atguigu.ibatis.bean.User”>

update users set name=#{name},age=#{age} where id=#{id}

</update>

<select id=”selectUser” parameterType=”int” resultType=”com.atguigu.ibatis.bean.User”>

select * from users where id=#{id}

</select>

<select id=”selectAllUsers” resultType=”com.atguigu.ibatis.bean.User”>

select * from users

</select>

 

2). 在config.xml中注册这个映射文件

<mapper resource=”net/lamp/java/ibatis/bean/userMapper.xml”/>

3). 在dao中调用:

public User getUserById(int id) {

SqlSession session = sessionFactory.openSession();

User user = session.selectOne(URI+”.selectUser”, id);

return user;

}

 

3.2. 注解的实现

1). 定义sql映射的接口

public interface UserMapper {

@Insert(“insert into users(name, age) values(#{name}, #{age})”)

public int insertUser(User user);

 

@Delete(“delete from users where id=#{id}”)

public int deleteUserById(int id);

@Update(“update users set name=#{name},age=#{age} where id=#{id}”)

public int updateUser(User user);

 

@Select(“select * from users where id=#{id}”)

public User getUserById(int id);

 

@Select(“select * from users”)

public List<User> getAllUser();

}

 

 

2). 在config中注册这个映射接口

<mapper class=”com.atguigu.ibatis.crud.ano.UserMapper”/>

 

3). 在dao类中调用

public User getUserById(int id) {

SqlSession session = sessionFactory.openSession();

UserMapper mapper = session.getMapper(UserMapper.class);

User user = mapper.getUserById(id);

return user;

}

 

4. 几个可以优化的地方

4.1. 连接数据库的配置单独放在一个properties文件中

## db.properties

 

<properties resource=”db.properties”/>

 

<property name=”driver” value=”${driver}” />

<property name=”url” value=”${url}” />

<property name=”username” value=”${username}” />

<property name=”password” value=”${password}” />

4.2. 为实体类定义别名,简化sql映射xml文件中的引用

<typeAliases>

<typeAlias type=”com.atguigu.ibatis.bean.User” alias=”_User”/>

</typeAliases>

 

4.3. 可以在src下加入log4j的配置文件,打印日志信息

1. 添加jar:

log4j-1.2.16.jar

 

2.1. log4j.properties(方式一)

 

log4j.properties,

log4j.rootLogger=DEBUG, Console

#Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.layout=org.apache.log4j.PatternLayout

log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] – %m%n

log4j.logger.java.sql.ResultSet=INFO

log4j.logger.org.apache=INFO

log4j.logger.java.sql.Connection=DEBUG

log4j.logger.java.sql.Statement=DEBUG

log4j.logger.java.sql.PreparedStatement=DEBUG

 

2.2. log4j.xml(方式二)

 

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<!DOCTYPE log4j:configuration SYSTEM “log4j.dtd”>

<log4j:configuration xmlns:log4j=”http://jakarta.apache.org/log4j/”>

<appender name=”STDOUT” class=”org.apache.log4j.ConsoleAppender”>

<layout class=”org.apache.log4j.PatternLayout”>

<param name=”ConversionPattern”

value=”%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n” />

</layout>

</appender>

<logger name=”java.sql”>

<level value=”debug” />

</logger>

<logger name=”org.apache.ibatis”>

<level value=”debug” />

</logger>

<root>

<level value=”debug” />

<appender-ref ref=”STDOUT” />

</root>

</log4j:configuration>

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。

 


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)