介紹
MyBatis是一個(gè)支持普通SQL查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及對(duì)結(jié)果集的檢索封裝。MyBatis可以使用簡(jiǎn)單的XML或注解用于配置和原始映射,將接口和Java的POJO(Plain Old Java Objects,普通的Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄。
- 寫sql,封裝成一個(gè)接口調(diào)用。比起jdbc方便很多,極大提高效率。
實(shí)踐
添加相應(yīng)的jar包
【mybatis】
mybatis-3.1.1.jar
【MYSQL驅(qū)動(dòng)包】
mysql-connector-java-5.1.7-bin.jar
添加Mybatis的配置文件conf.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置數(shù)據(jù)庫(kù)連接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="XDP" />
</dataSource>
</environment>
</environments>
</configuration>
定義表所對(duì)應(yīng)的實(shí)體類
- 實(shí)體類的屬性和表的字段名稱一一對(duì)應(yīng)
定義sql映射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">
<!-- 為這個(gè)mapper指定一個(gè)唯一的namespace,namespace的值習(xí)慣上設(shè)置成包名+sql映射文件名,這樣就能夠保證namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后綴)
-->
<mapper namespace="me.gacl.mapping.userMapper">
<!-- 在select標(biāo)簽中編寫查詢的SQL語(yǔ)句, 設(shè)置select標(biāo)簽的id屬性為getUser,id屬性值必須是唯一的,不能夠重復(fù)
使用parameterType屬性指明查詢時(shí)使用的參數(shù)類型,resultType屬性指明查詢返回的結(jié)果集類型
resultType="me.gacl.domain.User"就表示將查詢結(jié)果封裝成一個(gè)User類的對(duì)象返回
User類就是users表所對(duì)應(yīng)的實(shí)體類
-->
<!--
根據(jù)id查詢得到一個(gè)user對(duì)象
-->
<select id="getUser" parameterType="int"
resultType="me.gacl.domain.User">
select * from users where id=#{id}
</select>
<!-- 創(chuàng)建用戶(Create) -->
<insert id="addUser" parameterType="me.gacl.domain.User">
insert into users(name,age) values(#{name},#{age})
</insert>
<!-- 刪除用戶(Remove) -->
<delete id="deleteUser" parameterType="int">
delete from users where id=#{id}
</delete>
<!-- 修改用戶(Update) -->
<update id="updateUser" parameterType="me.gacl.domain.User">
update users set name=#{name},age=#{age} where id=#{id}
</update>
<!-- 查詢?nèi)坑脩?->
<select id="getAllUsers" resultType="me.gacl.domain.User">
select * from users
</select>
</mapper>
在conf.xml文件中注冊(cè)u(píng)serMapper.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置數(shù)據(jù)庫(kù)連接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="XDP" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 注冊(cè)u(píng)serMapper.xml文件,
userMapper.xml位于me.gacl.mapping這個(gè)包下,所以resource寫成me/gacl/mapping/userMapper.xml-->
<mapper resource="me/gacl/mapping/userMapper.xml"/>
</mappers>
</configuration>