mybatis中的xml方式增刪改查
阿新 • • 發佈:2018-04-30
mybatis中的xml方式增刪改查實體類
package cn.liwen.entity; public class User { private long id; //主鍵 private String username;//用戶名 private String password;//密碼 public long getId() { return id; } public void setId(long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username=‘" + username + ‘\‘‘ + ", password=‘" + password + ‘\‘‘ + ‘}‘; } }
接口實現類
package cn.liwen.impl; import cn.liwen.entity.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.testng.annotations.Test; import org.testng.annotations.BeforeClass; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; public class UserDaoImpl { private SqlSession session = null; @BeforeClass public void init() throws IOException { // 1、啟動mybatis框架 // SqlSession--->SqlSessionFatory----->SqlSessionFatoryBuilder SqlSessionFactoryBuilder ssb = new SqlSessionFactoryBuilder(); // 將mybatis.xml文件轉化成流 InputStream ins = Resources.getResourceAsStream("mybatis.xml"); SqlSessionFactory ssf = ssb.build(ins); session = ssf.openSession(); } /** * 查詢所以名字 * */ @Test public void getAllUser() { /** 2、調用局部配置文件中的sql語句*/ List<User> userList = session.selectList("cn.liwen.impl.UserDaoImpl.getAllUser"); for (User user : userList) { System.out.println(user); } } /**使用lists方式*/ @Test public void getAllUserlist() throws IOException { List<User> userList = session.selectList("cn.liwen.impl.UserDaoImpl.getAllUserlist"); for (User user : userList) { System.out.println(user); } } /**使用map方式*/ @Test public void getAllUser2() { // 2、調用局部配置文件中的sql語句 List<Map<String, Object>> userList = session.selectList("cn.liwen.impl.UserDaoImpl.getAllUser2"); for (Map<String, Object> map : userList) { System.out.println(map); } } /**測試單條記錄方式*/ @Test public void getUserById() { //帶參數方式 long id = 1L; Map<String, Object> userList = session.selectOne("cn.liwen.impl.UserDaoImpl.getUserById",id); System.out.println(userList); } /**多個參數*/ @Test public void getUserByCondition() { Map<String,Object> paraMap = new HashMap<String, Object>(); paraMap.put("username","李玟"); paraMap.put("pwd","321321"); Map<String, Object> userList = session.selectOne("cn.liwen.impl.UserDaoImpl.getUserById",paraMap); System.out.println(userList); } /**通過實體類方式取值*/ @Test public void getUserByCondition2() { // 同時傳遞多個參數 User user = new User(); user.setUsername("李玟"); user.setPassword("321321"); Map<String, Object> userMap = session.selectOne("cn.liwen.impl.UserDaoImpl.getUserByCondition2", user); System.out.println(userMap); } /** 執行模糊查詢 */ @Test public void getUserByMh() { // 傳遞參數 Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("password", "3"); List<Map<String, Object>> userMap = session.selectList("cn.liwen.impl.UserDaoImpl.getUserByMh", paramMap); for (Map<String, Object> map : userMap) { System.out.println(map); } } /**添加數據 delete、insert、update標簽沒有resultType屬性 */ @Test public void addUser() { Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("username","北京"); paramMap.put("password","123455"); int flag = session.insert("cn.liwen.impl.UserDaoImpl.addUser", paramMap); //增刪改必須提交事務 session.commit(); System.out.println(flag); } }
接口實現類.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"> <!-- namespace:命名空間,其值為某一個dao層類的具體路徑 --> <mapper namespace="cn.liwen.impl.UserDaoImpl"> <!-- sql語句保存在Mybatis的局部配置文件中 --> <!-- select標簽存放查詢語句(List<User>) id:在整個配置文件中id值必須唯一,其值與dao層類中的方法名保持一致 resultType:指定當前sql查詢語句返回的數據類型。類型不是為sql語句的最終類型,而是某一條數據的類型 --> <!-- findallusr : 是別名 --> <select id="getAllUser" resultType="findallusr"> SELECT * FROM users </select> <!--使用list方式調用 --> <select id="getAllUserlist" resultType="findallusr"> SELECT * FROM users </select> <!-- 使用map 方法查詢--> <select id="getAllUser2" resultType="Map"> SELECT * FROM users </select> <!-- parameterType:指定接收參數類型 --> <select id="getUserById" resultType="Map" parameterType="long"> SELECT * FROM users where id=#{id} </select> <!-- 當傳遞的參數有多個條件時 --> <select id="getUserByCondition" resultType="map" parameterType="Map"> SELECT * FROM users WHERE username=#{username} AND PASSWORD=#{pwd} </select> <!-- 當傳遞的參數有多個條件時 通過實體類方式 --> <select id="getUserByCondition2" resultType="map" parameterType="cn.liwen.entity.User"> SELECT * FROM users WHERE username=#{username} AND PASSWORD=#{password} </select> <!-- 執行模糊查詢 --> <select id="getUserByMh" resultType="map" parameterType="map"> SELECT * FROM users WHERE PASSWORD LIKE CONCAT(‘%‘,#{password},‘%‘) </select> <!-- 添加數據 delete、insert、update標簽沒有resultType屬性 --> <insert id="addUser" parameterType="Map"> INSERT INTO users SET username=#{username},PASSWORD=#{password} </insert> </mapper>
mybatis.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>
<!-- 別名
-->
<typeAliases>
<typeAlias type="cn.liwen.entity.User" alias="findallusr"/>
</typeAliases>
<!-- 配置數據庫連接環境:driver、url、username、password
default===默認配置
-->
<environments default="mysql">
<!-- 開始配置mysql -->
<environment id="mysql">
<!--配置事務 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置數據源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.47.196:3306/test?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 關聯局部配置文件 -->
<mappers>
<mapper resource="cn/liwen/impl/UserDaoImpl.xml"/>
</mappers>
</configuration>
mybatis中的xml方式增刪改查