Mybatis單張數據表CRUD操作

1.Eclipse新建java工程。

2.工程目錄下新建lib目錄,並將mybatis和mysql-connector-java相關jar拷貝到目錄下。

3.在src目錄下新建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"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://數據庫地址/數據庫名?useUnicode=true&characterEncoding=utf-8"/>
        <property name="username" value="數據庫用戶名"/>
        <property name="password" value="數據庫密碼"/>
      </dataSource>
    </environment>
   
  </environments>
  <mappers>
  <mapper resource="com/neusoft/dao/userInfoMapper.xml"/>
  </mappers>
</configuration>

environments主要用於配置數據庫相關,而且可以在裏面配置多個environment。

transactionManager: Mybatis中有兩種事務管理器類型JDBC和MANAGED(託管),其中JDBC使用了JDBC的提交和回滾設置,MANAGED則讓容器來管理事物的整個生命週期(比如Spring、jee應用服務器上下文)

dataSources: 用來配置基本的JDBC數據源連接信息。有三種內建的數據源類型UNPOOLED|POOLED|JNDI

和Spring整合後environments配置將廢除。

mappers全局參數:<mapper class="resource="com/neusoft/dao/userInfoMapper.xml">告訴Mybatis去哪找配置文件。

4.編寫實體類UserInfo

package com.neusoft.dao;

//實體類
public class UserInfo {
private  int uid;//用戶編號
private String username;//用戶名
private String password;//密碼
public UserInfo() {
	super();
	// TODO Auto-generated constructor stub
}

public UserInfo(int uid, String username, String password) {
	super();
	this.uid = uid;
	this.username = username;
	this.password = password;
}


public int getUid() {
	return uid;
}
public void setUid(int uid) {
	this.uid = uid;
}
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 "UserInfo [uid=" + uid + ", username=" + username + ", password="
			+ password + "]";
}


}

5.編寫映射文件userinfoMapper.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="com.neusoft.dao.UserInfoMapper">
 <select id="getUser"  parameterType="int" resultType="com.neusoft.dao.UserInfo">
 select *  from  userinfo  where uid=#{abc}
 </select>
 <insert id="addUser" parameterType="com.neusoft.dao.UserInfo">
 insert  into  userinfo(uid,username,password)  values(#{uid},#{username},#{password})
 </insert>
 <update id="updateUser" parameterType="com.neusoft.dao.UserInfo">
 update  userinfo set username=#{username},password=#{password} where uid=#{uid}
 </update>
 <delete id="deleteUser" parameterType="int">
 delete from userinfo  where uid=#{uid}
 </delete>
 <select id="getUsers"  resultType="com.neusoft.dao.UserInfo">
 select  *  from userinfo
 </select>
</mapper>

6.編寫Mybatis工具類

package com.neusoft.dao;

import java.io.IOException;
import java.io.InputStream;

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

public class MybatisUtils {
private MybatisUtils(){}
private static  SqlSessionFactory  factory=null;

static
{
	try {
		InputStream stream=Resources.getResourceAsStream("conf.xml");
	factory=new SqlSessionFactoryBuilder().build(stream);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}




public  static  SqlSession  openSession()
{
return 	factory.openSession();
	}
public  static  void closeSession(SqlSession session)
{
	session.close();
	}
}

7.編寫操作類

package com.neusoft.dao;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

public class UserInfoDao {
public  void  addUser(UserInfo  user)
{
	
	SqlSession session=MybatisUtils.openSession();//連接上數據庫
		String statement="com.neusoft.dao.UserInfoMapper.addUser";
		
	session.insert(statement, user);
        session.commit();
		MybatisUtils.closeSession(session);
}

public UserInfo  getUser(int id)
{
	
	SqlSession session=MybatisUtils.openSession();//連接上數據庫
		String statement="com.neusoft.dao.UserInfoMapper.getUser";
	UserInfo  user=	session.selectOne(statement, id);
MybatisUtils.closeSession(session);	
		return user;
}

public  void  updateUser(UserInfo  user)
{
	
	SqlSession session=MybatisUtils.openSession();//連接上數據庫
		String statement="com.neusoft.dao.UserInfoMapper.updateUser";
		
	session.update(statement, user);
        session.commit();
		MybatisUtils.closeSession(session);
}
public  void  deleteUser(int id)
{
	
	SqlSession session=MybatisUtils.openSession();//連接上數據庫
		String statement="com.neusoft.dao.UserInfoMapper.deleteUser";
		
	session.delete(statement, id);
        session.commit();
		MybatisUtils.closeSession(session);
}

public  List<UserInfo>  getUserInfos()
{
	SqlSession  session=MybatisUtils.openSession();
	String statement="com.neusoft.dao.UserInfoMapper.getUsers";
	List<UserInfo>  users=session.selectList(statement);
	
	MybatisUtils.closeSession(session);
	return users;
}
}
8.編寫測試類
package com.neusoft.test;

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

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 com.neusoft.dao.UserInfo;
import com.neusoft.dao.UserInfoDao;

public class Test {

	/**
	 * @param args
	 * @throws IOException 
	 */
	
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
UserInfoDao  uid=new UserInfoDao();
//UserInfo  u=uid.getUser(2);
//System.out.println(u.toString());
//UserInfo  user=new UserInfo(6,"李四","lisi");
//uid.addUser(user);
//uid.updateUser(user);
//uid.deleteUser(5);

List<UserInfo>  users=uid.getUserInfos();

for(UserInfo  u:users)
{
System.out.println(u.toString());	
}
	}

}

9.工程目錄結構

10.數據庫表結構如下圖所示


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章