最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪查改實(shí)例詳解

 更新時(shí)間:2016年07月25日 14:26:58   作者:wojiaohuangyu  
這篇文章主要介紹了mybatis實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪查改實(shí)例詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

前期準(zhǔn)備

新建java工程或java wweb工程,需要導(dǎo)入以下的包,

基本工作已經(jīng)完成,接下來(lái)開(kāi)始進(jìn)入正題。

新建實(shí)體類(lèi)

新建與數(shù)據(jù)庫(kù)表對(duì)應(yīng)的實(shí)體類(lèi)

package com.edu.hpu.domain; 
/** 
* @author Administrator 
*user表所對(duì)應(yīng)的實(shí)體類(lèi) 
*/ 
public class User { 
//實(shí)體類(lèi)的屬性和表的字段名稱(chēng)一一對(duì)應(yīng) 
private int id; 
private String name; 
private int age; 
//對(duì)屬性進(jìn)行封裝 
public int getId() { 
return id; 
} 
public void setId(int id) { 
this.id = id; 
} 
public String getName() { 
return name; 
} 
public void setName(String name) { 
this.name = name; 
} 
public int getAge() { 
return age; 
} 
public void setAge(int age) { 
this.age = age; 
} 
//添加toString方法 
@Override 
public String toString() { 
return "User [id=" + id + ",name=" + name + ",age=" + age + "]"; 
} 
} 

添加Mybatis工具類(lèi)

添加用到的工具類(lèi),如下所示,

package com.edu.hpu.util; 
import java.io.InputStream; 
import org.apache.ibatis.session.SqlSession; 
import org.apache.ibatis.session.SqlSessionFactory; 
import org.apache.ibatis.session.SqlSessionFactoryBuilder; 
public class MyBatisUtil { 
/** 
* 獲取SqlSessionFactory 
* @return SqlSessionFactory 
*/ 
public static SqlSessionFactory getSqlSessionFactory() { 
String resource = "conf.xml";//調(diào)取配置文件 
InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource); 
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); 
return factory; 
} 
/** 
* 獲取SqlSession 
* @return SqlSession 
*/ 
public static SqlSession getSqlSession() { 
return getSqlSessionFactory().openSession(); 
} 
/** 
* 獲取SqlSession 
* @param isAutoCommit 
* true 表示創(chuàng)建的SqlSession對(duì)象在執(zhí)行完SQL之后會(huì)自動(dòng)提交事務(wù) 
* false 表示創(chuàng)建的SqlSession對(duì)象在執(zhí)行完SQL之后不會(huì)自動(dòng)提交事務(wù),這時(shí)就需要我們手動(dòng)調(diào)用sqlSession.commit()提交事務(wù) 
* @return SqlSession 
*/ 
public static SqlSession getSqlSession(boolean isAutoCommit) { 
return getSqlSessionFactory().openSession(isAutoCommit); 
} 
} 

使用mybatis對(duì)數(shù)據(jù)進(jìn)行增刪查改操作有兩種方法,分別為配置文件操作和注解操作。

通過(guò)配置文件進(jìn)行操作

數(shù)據(jù)庫(kù)配置文件如下所示,對(duì)數(shù)據(jù)庫(kù)信息進(jìn)行配置,

<?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/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" /> 
<property name="username" value="root" /> 
<property name="password" value="admin" /> 
</dataSource> 
</environment> 
</environments> 
<mappers> 
<!-- 注冊(cè)u(píng)serMapper.xml文件, 
userMapper.xml位于com.edu.hpu.mapping這個(gè)包下,所以resource寫(xiě)成com/edu/hpu/mapping/userMapper.xml--> 
<mapper resource="com/edu/hpu/mapping/userMapper.xml"/> 
<!-- <mapper class="com.edu.hpu.mapping.UserMapper_11"/> --> 
</mappers> 
</configuration> 

配置操作數(shù)據(jù)庫(kù)語(yǔ)句文件,如下所示,

<?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="com.edu.hpu.mapping.userMapper"> 
<!-- 在select標(biāo)簽中編寫(xiě)查詢(xún)的SQL語(yǔ)句, 設(shè)置select標(biāo)簽的id屬性為getUser,id屬性值必須是唯一的,不能夠重復(fù) 
使用parameterType屬性指明查詢(xún)時(shí)使用的參數(shù)類(lèi)型,resultType屬性指明查詢(xún)返回的結(jié)果集類(lèi)型 
resultType="com.edu.hpu.domain.User"就表示將查詢(xún)結(jié)果封裝成一個(gè)User類(lèi)的對(duì)象返回 
User類(lèi)就是users表所對(duì)應(yīng)的實(shí)體類(lèi) 
--> 
<!-- 
根據(jù)id查詢(xún)得到一個(gè)user對(duì)象 
--> 
<select id="getUser" parameterType="int" 
resultType="com.edu.hpu.domain.User"> 
select * from users where id=#{id} 
</select> 
<!-- 創(chuàng)建用戶(hù)(Create) --> 
<insert id="addUser" parameterType="com.edu.hpu.domain.User"> 
insert into users(name,age) values(#{name},#{age}) 
</insert> 
<!-- 刪除用戶(hù)(Remove) --> 
<delete id="deleteUser" parameterType="int"> 
delete from users where id=#{id} 
</delete> 
<!-- 修改用戶(hù)(Update) --> 
<update id="updateUser" parameterType="com.edu.hpu.domain.User"> 
update users set name=#{name},age=#{age} where id=#{id} 
</update> 
<!-- 查詢(xún)?nèi)坑脩?hù)--> 
<select id="getAllUsers" resultType="com.edu.hpu.domain.User"> 
select * from users 
</select> 
</mapper> 

通過(guò)配置文件實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的增刪查改基本上已經(jīng)完成,接下來(lái)給出測(cè)試類(lèi),
可以進(jìn)行測(cè)試,如下所示,

package com.edu.hpu.test; 
import java.util.List; 
import com.edu.hpu.domain.User; 
import com.edu.hpu.util.MyBatisUtil; 
import org.junit.Test; 
import org.apache.ibatis.session.SqlSession; 
public class Test2 { 
@Test 
public void testAdd(){ 
//SqlSession sqlSession = MyBatisUtil.getSqlSession(false); 
SqlSession sqlSession = MyBatisUtil.getSqlSession(true); 
/** 
* 映射sql的標(biāo)識(shí)字符串, 
* com.edu.hpu.mapping.userMapper是userMapper.xml文件中mapper標(biāo)簽的namespace屬性的值, 
* addUser是insert標(biāo)簽的id屬性值,通過(guò)insert標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL 
*/ 
String statement = "com.edu.hpu.mapping.userMapper.addUser";//映射sql的標(biāo)識(shí)字符串 
User user = new User(); 
user.setName("新增用戶(hù)小黃"); 
user.setAge(20); 
//執(zhí)行插入操作 
int retResult = sqlSession.insert(statement,user); 
//手動(dòng)提交事務(wù) 
//sqlSession.commit(); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(retResult); 
} 
@Test 
public void testUpdate(){ 
SqlSession sqlSession = MyBatisUtil.getSqlSession(true); 
/** 
* 映射sql的標(biāo)識(shí)字符串, 
* com.edu.hpu.mapping.userMapper是userMapper.xml文件中mapper標(biāo)簽的namespace屬性的值, 
* updateUser是update標(biāo)簽的id屬性值,通過(guò)update標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL 
*/ 
String statement = "com.edu.hpu.mapping.userMapper.updateUser";//映射sql的標(biāo)識(shí)字符串 
User user = new User(); 
user.setId(3); 
user.setName("hello world"); 
user.setAge(25); 
//執(zhí)行修改操作 
int retResult = sqlSession.update(statement,user); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(retResult); 
} 
@Test 
public void testDelete(){ 
SqlSession sqlSession = MyBatisUtil.getSqlSession(true); 
/** 
* 映射sql的標(biāo)識(shí)字符串, 
* com.edu.hpu.mapping.userMapper是userMapper.xml文件中mapper標(biāo)簽的namespace屬性的值, 
* deleteUser是delete標(biāo)簽的id屬性值,通過(guò)delete標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL 
*/ 
String statement = "com.edu.hpu.mapping.userMapper.deleteUser";//映射sql的標(biāo)識(shí)字符串 
//執(zhí)行刪除操作 
int retResult = sqlSession.delete(statement,4); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(retResult); 
} 
@Test 
public void testGetAll(){ 
SqlSession sqlSession = MyBatisUtil.getSqlSession(); 
/** 
* 映射sql的標(biāo)識(shí)字符串, 
* com.edu.hpu.mapping.userMapper是userMapper.xml文件中mapper標(biāo)簽的namespace屬性的值, 
* getAllUsers是select標(biāo)簽的id屬性值,通過(guò)select標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL 
*/ 
String statement = "com.edu.hpu.mapping.userMapper.getAllUsers";//映射sql的標(biāo)識(shí)字符串 
//執(zhí)行查詢(xún)操作,將查詢(xún)結(jié)果自動(dòng)封裝成List<User>返回 
List<User> lstUsers = sqlSession.selectList(statement); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(lstUsers); 
} 
} 

通過(guò)注解進(jìn)行操作

通過(guò)注解進(jìn)行操作需要寫(xiě)一個(gè)接口,但是不必實(shí)現(xiàn),如下所示,

package com.edu.hpu.mapping; 
import java.util.List; 
import com.edu.hpu.domain.User; 
import org.apache.ibatis.annotations.Delete; 
import org.apache.ibatis.annotations.Insert; 
import org.apache.ibatis.annotations.Select; 
import org.apache.ibatis.annotations.Update; 
/** 
* @author gacl 
* 定義sql映射的接口,使用注解指明方法要執(zhí)行的SQL 
*/ 
public interface UserMapper_11 { 
//使用@Insert注解指明add方法要執(zhí)行的SQL 
@Insert("insert into users(name, age) values(#{name}, #{age})") 
public int add(User user); 
//使用@Delete注解指明deleteById方法要執(zhí)行的SQL 
@Delete("delete from users where id=#{id}") 
public int deleteById(int id); 
//使用@Update注解指明update方法要執(zhí)行的SQL 
@Update("update users set name=#{name},age=#{age} where id=#{id}") 
public int update(User user); 
//使用@Select注解指明getById方法要執(zhí)行的SQL 
@Select("select * from users where id=#{id}") 
public User getById(int id); 
//使用@Select注解指明getAll方法要執(zhí)行的SQL 
@Select("select * from users") 
public List<User> getAll(); 
} 

同時(shí),需要在數(shù)據(jù)庫(kù)配置文件中添加所寫(xiě)的接口,在conf.xml中添加如下語(yǔ)句,

<mapper class="com.edu.hpu.mapping.UserMapper_11"/>

OK,基本上已經(jīng)完成,這里給出測(cè)試類(lèi)可以進(jìn)行測(cè)試,

package com.edu.hpu.test; 
import java.util.List; 
import com.edu.hpu.domain.User; 
import com.edu.hpu.mapping.UserMapper_11; 
import com.edu.hpu.util.MyBatisUtil; 
import org.apache.ibatis.session.SqlSession; 
import org.junit.Test; 
/** 
* @author Administrator 
*對(duì)注解進(jìn)行測(cè)試 
*/ 
public class Test3 { 
@Test 
public void testAdd(){ 
SqlSession sqlSession = MyBatisUtil.getSqlSession(true); 
//得到UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象,UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象由sqlSession.getMapper(UserMapper.class)動(dòng)態(tài)構(gòu)建出來(lái) 
UserMapper_11 mapper = sqlSession.getMapper(UserMapper_11.class); 
User user = new User(); 
user.setName("大智若愚"); 
user.setAge(20); 
int add = mapper.add(user); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(add); 
} 
@Test 
public void testUpdate(){ 
SqlSession sqlSession = MyBatisUtil.getSqlSession(true); 
//得到UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象,UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象由sqlSession.getMapper(UserMapper.class)動(dòng)態(tài)構(gòu)建出來(lái) 
UserMapper_11 mapper = sqlSession.getMapper(UserMapper_11.class); 
User user = new User(); 
user.setId(3); 
user.setName("大音希聲"); 
user.setAge(26); 
//執(zhí)行修改操作 
int retResult = mapper.update(user); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(retResult); 
} 
@Test 
public void testDelete(){ 
SqlSession sqlSession = MyBatisUtil.getSqlSession(true); 
//得到UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象,UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象由sqlSession.getMapper(UserMapper.class)動(dòng)態(tài)構(gòu)建出來(lái) 
UserMapper_11 mapper = sqlSession.getMapper(UserMapper_11.class); 
//執(zhí)行刪除操作 
int retResult = mapper.deleteById(7); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(retResult); 
} 
@Test 
public void testGetUser(){ 
SqlSession sqlSession = MyBatisUtil.getSqlSession(); 
//得到UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象,UserMapperI接口的實(shí)現(xiàn)類(lèi)對(duì)象由sqlSession.getMapper(UserMapper.class)動(dòng)態(tài)構(gòu)建出來(lái) 
UserMapper_11 mapper = sqlSession.getMapper(UserMapper_11.class); 
//執(zhí)行查詢(xún)操作,將查詢(xún)結(jié)果自動(dòng)封裝成User返回 
User user = mapper.getById(1); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(user); 
} 
@Test 
public void testGetAll(){ 
SqlSession sqlSession = MyBatisUtil.getSqlSession(); 
//得到UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象,UserMapper接口的實(shí)現(xiàn)類(lèi)對(duì)象由sqlSession.getMapper(UserMapper.class)動(dòng)態(tài)構(gòu)建出來(lái) 
UserMapper_11 mapper = sqlSession.getMapper(UserMapper_11.class); 
//執(zhí)行查詢(xún)操作,將查詢(xún)結(jié)果自動(dòng)封裝成List<User>返回 
List<User> lstUsers = mapper.getAll(); 
//使用SqlSession執(zhí)行完SQL之后需要關(guān)閉SqlSession 
sqlSession.close(); 
System.out.println(lstUsers); 
} 
} 

以上所述是小編給大家介紹的mybatis實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪查改實(shí)例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

永靖县| 旅游| 福建省| 会东县| 英吉沙县| 安阳市| 迁安市| 曲周县| 独山县| 营口市| 阿拉善盟| 昭觉县| 西和县| 米易县| 武安市| 历史| 丽江市| 洞口县| 大丰市| 芜湖县| 遵化市| 岳阳县| 海伦市| 鄂托克前旗| 额敏县| 大新县| 静乐县| 罗源县| 台北县| 同江市| 肇东市| 唐山市| 辰溪县| 商水县| 伊金霍洛旗| 仙游县| 于田县| 清流县| 南雄市| 乐清市| 礼泉县|