Mybatis简单实例
第一步:新建javaweb工程,引入mybatis所需的jar包和mysql连接jar包。
第二步:新建数据库并建立测试表。
第三步:配置mybatis-config.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><!-- 别名 (注意后面resultType就等于这个别名)-->
<typeAlias alias="UserBean" type="com.lb.javabean.UserBean" />
</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://你的IP地址:3306/mybatis01" />
<property name="username" value="root" />
<property name="password" value="你的密码" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 告知映射文件方式1,一个一个的配置 <mapper resource="com/lb/mapper/UserMapper.xml"/> -->
<!-- 告知映射文件方式2,自动扫描包内的Mapper接口与配置文件 -->
<package name="com/lb/mapper" />
</mappers>
</configuration>
第四步:新建实体类
package com.lb.javabean;
/**
* 用户对象
* @author lanbing
* 2018.7.22
*
*/
public class UserBean {
private int id; // 用户id号
private String username; // 用户名
private String account; // 用户账号
private String password; //用户密码
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public UserBean(int id, String username, String account, String password) {
super();
this.id = id;
this.username = username;
this.account = account;
this.password = password;
}
public UserBean(String username, String account, String password) {
super();
this.username = username;
this.account = account;
this.password = password;
}
}
第五步:新建映射器接口并配置映射文件
package com.lb.mapper;
import java.util.List;
import com.lb.javabean.UserBean;
/**
* usermapper接口
* @author lanbing
*2018.7.22
*/
public interface UserMapper {
/**
* 新增用戶
* @param user
* @return
* @throws Exception
*/
public int insertUser(UserBean user) throws Exception;
/**
* 修改用戶
* @param user
* @param id
* @return
* @throws Exception
*/
public int updateUser (UserBean user) throws Exception;
/**
* 刪除用戶
* @param id
* @return
* @throws Exception
*/
public int deleteUser(int id) throws Exception;
/**
* 根据id查询用户信息
* @param id
* @return
* @throws Exception
*/
public UserBean selectUserById(int id) throws Exception;
/**
* 查询所有的用户信息
* @return
* @throws Exception
*/
public List<UserBean> selectAllUser() throws Exception;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lb.mapper.UserMapper">
<insert id="insertUser" parameterType="UserBean">
insert into tab_user (username,account,password) values (#{username},#{account},#{password})
</insert>
<update id="updateUser" parameterType="UserBean">
update tab_user set username=#{username},password=#{password},account=#{account} where id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from tab_user where id=#{id}
</delete>
<select id="selectUserById" parameterType="int" resultType="UserBean">
select * from tab_user where id=#{id}
</select>
<select id="selectAllUser" resultType="UserBean">
select * from tab_user
</select>
</mapper>
第六步:新建CreateSession类,通过单例模式获取session工厂对象
package com.lb.tools;
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;
/**
* 获取session工厂对象
* @author lanbing
*
*/
public class CreateSessionFactory {
private final static Class<CreateSessionFactory> LOCK = CreateSessionFactory.class; //将整个类上锁
private static SqlSessionFactory sqlSessionFactory = null; //定义空的session工厂
private CreateSessionFactory() {
}
/**
* 通过单例模式获取session工厂
* @return
*/
public static SqlSessionFactory getSqlSessionFactory() {
synchronized (LOCK) {
if (sqlSessionFactory != null) {
return sqlSessionFactory;
}
String resource = "mybatis-config.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
return null;
}
return sqlSessionFactory;
}
}
/**
* 获取SessionFactory
* @return
*/
public static SqlSession openSqlSession() {
if (sqlSessionFactory == null) {
getSqlSessionFactory();
}
return sqlSessionFactory.openSession();
}
}
第七步:测试增删改查
package com.lb.service;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.lb.javabean.UserBean;
import com.lb.mapper.UserMapper;
import com.lb.tools.CreateSessionFactory;;
public class UserService {
public static void main(String[] args) {
//insertUser();
//deleteUser(2);
selectUserById(4);
List<UserBean> users = selectAllUser();
UserBean user = null;
for(int i=0;i<users.size();i++) {
user = new UserBean(users.get(i).getUsername(),users.get(i).getAccount(),users.get(i).getPassword());
insertUser(user);
}
// UserBean user = new UserBean(1,"兰兵", "1314521", "7000");
// updateUser(user);
}
/**
* 新增用户
*/
private static void insertUser(UserBean user) {
SqlSession session = null;
try {
session = CreateSessionFactory.openSqlSession();
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.insertUser(user);
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}finally {
if (session != null) {
session.close();
}
}
}
/**
* 删除用户
*/
private static void deleteUser(int id){
SqlSession session = null;
try {
session=CreateSessionFactory.openSqlSession();
UserMapper mapper=session.getMapper(UserMapper.class);
mapper.deleteUser(id);
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}finally {
if (session != null) {
session.close();
}
}
}
/**
* 更新用户
*/
private static void updateUser(UserBean user){
SqlSession session = null;
try {
session=CreateSessionFactory.openSqlSession();
UserMapper mapper=session.getMapper(UserMapper.class);
mapper.updateUser(user);
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}finally {
if (session != null) {
session.close();
}
}
}
/**
* 根据id查询用户
*/
private static UserBean selectUserById(int id){
SqlSession session = null;
UserBean user = null;
try {
session=CreateSessionFactory.openSqlSession();
UserMapper mapper=session.getMapper(UserMapper.class);
user = mapper.selectUserById(id);
System.out.println(user.getId()+" "+user.getAccount()+" "+user.getPassword()+" "+user.getUsername());
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}finally {
if (session != null) {
session.close();
}
}
return user;
}
/**
* 查询所有的用户
*/
private static List<UserBean> selectAllUser(){
SqlSession session = null;
List<UserBean> user = null;
try {
session=CreateSessionFactory.openSqlSession();
UserMapper mapper=session.getMapper(UserMapper.class);
user=mapper.selectAllUser();
for(int i=0;i<user.size();i++) {
System.out.println(user.get(i).getId()+" "+user.get(i).getAccount()+" "+user.get(i).getPassword()+" "+user.get(i).getUsername());
}
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}finally {
if (session != null) {
session.close();
}
}
return user;
}
}