1. 程式人生 > >mybatis實驗(一)——對資料庫進行簡單的增、刪、改、查

mybatis實驗(一)——對資料庫進行簡單的增、刪、改、查

  1. 新建動態web工程,在src下建立Configuration.xml
  2. 複製mybatis框架所需的架包,到WEB-INF\lib目錄下
  3. 配置Configuration.xml,設定mybatis的資料來源的基礎配置。初始配置程式碼如下:
    <?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 /> 
        </typeAliases> 
        <environments default="development">
            <environment id="development">
            <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                   <property name="driver" value="com.mysql.jdbc.Driver"/>
                   <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&amp;characterEncoding=utf-8" />
                   <property name="username" value="root"/>
                   <property name="password" value="123456"/>
                </dataSource>
            </environment>
        </environments>
         <mappers>
             
              
        </mappers>     
    </configuration>
    

 4.在src目錄下建立“zz.mapping”包,該包用於儲存javabean類的對映檔案,在該保中建立“userMapping.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">

<mapper namespace="">
     
     
     
 </mapper>

5.建立資料庫(mybatis),並建立user資料庫表,並新增幾條資料。該表結構如下:

6.在src目錄下建立“zz.domian”包,該包用於儲存user資料庫的表的實體。在該包中建立User類,該類的屬性對應user資料庫表的欄位。程式碼如下:

7.	package swu.zz.domian;
8.	
9.	public class User {
10.		private int id;
11.		private String userName;
12.		private int userAge;
13.		private String userAddress;
14.		
15.		public int getId() {
16.			return id;
17.		}
18.		public void setId(int id) {
19.			this.id = id;
20.		}
21.		public String getUserName() {
22.			return userName;
23.		}
24.		public void setUserName(String userName) {
25.			this.userName = userName;
26.		}
27.		public int getUserAge() {
28.			return userAge;
29.		}
30.		public void setUserAge(int userAge) {
31.			this.userAge = userAge;
32.		}
33.		public String getUserAddress() {
34.			return userAddress;
35.		}
36.		public void setUserAddress(String userAddress) {
37.			this.userAddress = userAddress;
38.		}
39.		@Override
40.		public String toString() {
41.			return "User [id=" + id + ", userName=" + userName + ", userAge="
42.					+ userAge + ", userAddress=" + userAddress + "]";
43.		}
44.		public User() {
45.			super();
46.		}
47.		
48.		
49.	
50.	}

7.在userMapping中定義4個方法,分別對應資料的增刪改查。其程式碼如下:

<?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="swu.zz.mapping.userMapping">
 
	<!--獲取資料-->
	<select id="getAllUser" resultType="swu.zz.domian.User">
		select * from user;
	</select>      
	
<!--增加資料-->
	<insert id="addUser" parameterType="swu.zz.domian.User">
insert into user(userName,userAge,userAddress) values(#{userName},#{userAge},#{userAddress});
	</insert>

<!--刪除資料-->
<delete id="deleUser">
		delete from user where id=#{id};
</delete>

<!--修改資料-->
	<update id="updateUser" parameterType="swu.zz.domian.User" >
		Update user
		SET 
		username = #{userName},
		userage = #{userAge},
		useraddress = #{userAddress}
		WHERE id = #{id}
	</update>


	<!--按id查詢-->
	<select id="getUser" resultType="swu.zz.domian.User" parameterType="int">
		select * from user where id=#{id};
	</select>      
          
 </mapper>

8.在Configuration.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 alias="User" type="swu.zz.domian.User" /> 
    </typeAliases> 
    <environments default="development">
        <environment id="development">
        <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
               <property name="driver" value="com.mysql.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&amp;characterEncoding=utf-8" />
               <property name="username" value="root"/>
               <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    
    <!--註冊對映檔案-->
     <mappers>
         <mapper resource="swu/zz/mapping/userMapping.xml"/>
          
    </mappers>     
</configuration>

 9.在src下建立“zz.test”包,在包內新增“Test”類,用來測試、執行xml檔案,程式碼如下:

package swu.zz.test;

import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import swu.zz.domian.User;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String rs = "Configuration.xml";
		//載入配置檔案
		InputStream is = Test.class.getClassLoader().getResourceAsStream(rs);
		
		//構建mybatis的工廠
		SqlSessionFactory sessionfactory = new SqlSessionFactoryBuilder().build(is);
		SqlSession session = sessionfactory.openSession();
		
		/*輸出資料庫中的資料*/
		String str1 = "swu.zz.mapping.userMapping.getAllUser";
		List<User> myuser=session.selectList(str1);
		for(User user:myuser){
			System.out.println(user);
		}
	
/*向資料庫增加資料*/
		String str3 = "swu.zz.mapping.userMapping.addUser";
		User user3 =new User();
		user3.setUserName("wang");
		int s = session.insert(str3, user3);
		session.commit()

		/*刪除資料庫中的資料*/
		String str4 = "swu.zz.mapping.userMapping.deleUser";
		int count = session.delete(str4, 2);
		session.commit();


/*修改資料*/
		String str5 = "swu.zz.mapping.userMapping.updateUser";
		User user5 = new User();
		user5.setId(5);
		user5.setUserName("kk");
		user5.setUserAge(23);
		user5.setUserAddress("北京");
		int c = session.update(str5, user5);
		session.commit();

		/*按id號來查詢資料*/
		String str2 = "swu.zz.mapping.userMapping.getUser";
		User user1=session.selectOne(str2, 1);
		System.out.println(user1);

	}

}