MyBatis學習(一)

  難得清閒,學習了一下mybatis持久化框架,在這裏分享一下。

1、首先導入jar包:

    mybatis-3.1.1.jar(核心包)
    mysql-connector-java-5.1.17-bin.jar  
    junit.jar        (junit)
    org.hamcrest.core_1.1.0.v20090501071000.jar     (junit)

2、主配置文件: 

提供數據庫連接信息+實體映射文件,和hibernate的主配置文件類似


	<?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>
		<span style="white-space:pre">	</span><!-- 讀取數據庫連接屬性文件 -->
			<properties resource="jdbc.properties" />
			<!-- 確定包的地址 -->
			<typeAliases>
				<package name="org.tgb.model" />
			</typeAliases>
			<!-- 配置開發環境,默認的都是這個情況 -->
			<environments default="development">
				<environment id="development">
					<!-- 使用jdbc的事務管理 -->
					<transactionManager type="JDBC" />
					<dataSource type="POOLED">
						<property name="driver" value="${driver}" />
						<property name="url" value="${url}" />
						<property name="username" value="${username}" />
						<property name="password" value="${password}" />
					</dataSource>
				</environment>
			</environments>
			<!-- 將mapper文件加入到配置文件中 -->
			<mappers>
				<mapper resource="org/tgb/model/User.xml" />
			</mappers>
	<span style="white-space:pre">	</span></configuration>


3、數據庫連接信息的屬性文件


username=root
password=root
url=jdbc:mysql://localhost:3306/itat_shop
driver=com.mysql.jdbc.Driver


4、實體文件

		public class User {
			private String username;
			private String password;
			private String type;
		
			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;
			}
		
			public String getType() {
				return type;
			}
		
			public void setType(String type) {
				this.type = type;
			}
		
		}


5、實體配置文件(增刪該查的操作)


	<?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="itat.zttc.shop.model.User">
		<insert id="add" parameterType="User">
			insert into t_user (username,password,type)
				value(#{username},#{password},#{type})
		</insert>
			
		<update id="update" parameterType="User">
		update t_user set password=#{password},username=#{username},type=#{type} where username=#{username}
		</update>
			
		<delete id="delete" parameterType="String">
			delete from t_user where username=#{username}
		</delete>
			
		<select id="load" parameterType="int" resultType="User">
			select * from t_user where id=#{id}
		</select>
			
		<select id="list" resultType="User">
			select * from t_user
		</select>
	</mapper>


6、客戶端測試

public class TestMybatis {
		
	@Test
	public void testAdd() {
		try {
			// 1、創建配置文件(mybatis-config.xml)的輸入流
			InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
			// 2、創建SQLSessionFactory
			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
			// 3、創建SQLSessioin
			SqlSession session = factory.openSession();
			// 4、調用mapper文件插入數據(調用之前需要將mapper文件加入到mybatis-config.xml中)
			User u = new User();
			u.setPassword("Mybatis2");
			u.setType("Mybatis2");
			u.setUsername("Mybatis2");
			session.insert("itat.zttc.shop.model.User.add", u);
			System.err.println("call the insert method");
			session.commit();
			session.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
<span style="white-space:pre">	</span>}
		
	@Test
	public void testdelete() {
		try {
			// 1、創建配置文件(mybatis-config.xml)的輸入流
			InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
			// 2、創建SQLSessionFactory
			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
			// 3、創建SQLSessioin
			SqlSession session = factory.openSession();
			// 4、調用mapper文件插入數據(調用之前需要將mapper文件加入到mybatis-config.xml中)
			User u = new User();
			u.setUsername("Mybatis2");
			session.delete("itat.zttc.shop.model.User.delete", u.getUsername());
			System.err.println("call the delete method");
			session.commit();
			session.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
		
	@Test
	public void testUpdate() {
		try {
		<span style="white-space:pre">	</span>// 1、創建配置文件(mybatis-config.xml)的輸入流
			InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
			// 2、創建SQLSessionFactory
			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
			// 3、創建SQLSessioin
			SqlSession session = factory.openSession();
			// 4、調用mapper文件插入數據(調用之前需要將mapper文件加入到mybatis-config.xml中)
			User u = new User();
			u.setPassword("Mybatis");
			u.setType("Mybatis");
			u.setUsername("Mybatis");
			session.update("itat.zttc.shop.model.User.update", u);
			System.err.println("call the update method");
			session.commit();
			session.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
		
	@Test
	public void testSelect() {
		try {
		// 1、創建配置文件(mybatis-config.xml)的輸入流
			InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
			// 2、創建SQLSessionFactory
			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
			// 3、創建SQLSessioin
			SqlSession session = factory.openSession();
			// 4、調用mapper文件插入數據(調用之前需要將mapper文件加入到mybatis-config.xml中)
			User u = new User();
			u.setUsername("Mybatis");
			List<User> userList = session.selectList("itat.zttc.shop.model.User.list");
		
			for (User u2:userList) {
				System.out.println(u2.getUsername());
			}
					
			session.commit();
			session.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}




(未完,待續)


發佈了145 篇原創文章 · 獲贊 183 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章