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.數據庫表結構如下圖所示