一、步骤
先说下步骤,建立数据库表、添加mybatis包和mysql包,建立mybatis-config.xml配置文件,创建映射ORM(可以用逆向工程),添加mappers添加映射到mybatis-config.xml中、建立工具类,用build构建factory,从factory获得sqlsession,建立servlet(为了测试方便笔者建立的是普通class),sqlsession执行sql,关闭连接。
二、实现
建立数据库
项目总结构图,右图是使用逆向工程的方法
mybatis-config.xml配置文件代码,已添加映射
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"mybatis-3-config.dtd">
<configuration>
<!-- 数据库环境 -->
<environments default="development">
<environment id="development">
<!-- 采用JDBC管理器方式 -->
<transactionManager type="JDBC"/>
<!-- POOLED采用mybabtis内部连接池方式 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<!-- 添加映射 -->
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
ORM映射配置文件(逆向工程不用改)UserMapper.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.orm.UserMapper">
<insert id="insert" parameterType="com.orm.User" useGeneratedKeys="true" keyProperty="id">
insert into
user(name,password,age)
values(#{name},#{password},#{age})
</insert>
<select id="selecById" parameterType="int" resultType="com.orm.User">
select * from
user where id=#{id}
</select>
<delete id="deleteById" parameterType="int">
delete from
user where id=#{id}
</delete>
<select id="selectAll" resultType="com.orm.User">
select * from user
</select>
<update id="updataById" parameterType="com.orm.User">
update user
set
name=#{name},password=#{password},age=#{age}
where id=#{id}
</update>
</mapper>
工具类GetSqlSession
package com.dbtools;
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 abstract class GetSqlSession {
public static SqlSession getSqlSession() throws IOException{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
}
插入数据Insert
package com.controller;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import com.dbtools.GetSqlSession;
import com.orm.User;
//插入一条信息
public class Insert {
public static void main(String[] args) {
User user = new User();
user.setName("first");
user.setPassword("1234");
user.setAge(18);
try {
SqlSession sqlSession = GetSqlSession.getSqlSession();
/*逆向工程插入
* sqlSession.insert("com.orm.UserMapper.insert", user)*/
sqlSession.insert("com.orm.UserMapper.insert", user);
System.out.println(user.getId());
sqlSession.commit();
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
根据id查询信息SelectById
package com.controller;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import com.dbtools.GetSqlSession;
import com.orm.User;
//查询id为3的信息
public class SelectById {
public static void main(String[] args) {
try {
SqlSession sqlSession = GetSqlSession.getSqlSession();
/*逆向工程
User user = sqlSession.selectOne("com.orm.UserMapper.selectByPrimaryKey", 3);*/
User user = sqlSession.selectOne("com.orm.UserMapper.selecById", 3);
System.out.println(user.getName());
System.out.println(user.getPassword());
System.out.println(user.getAge());
sqlSession.commit();
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
查询所有SelectAll
package com.controller;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.dbtools.GetSqlSession;
import com.orm.User;
//查询所有
public class SelectAll {
public static void main(String[] args) {
try {
SqlSession sqlSession = GetSqlSession.getSqlSession();
/*逆向工程
List<User> userList = sqlSession.selectList("com.orm.UserMapper.selectByExample");*/
List<User> userList = sqlSession.selectList("com.orm.UserMapper.selectAll");
for (int i = 0; i < userList.size(); i++) {
User user = userList.get(i);
System.out.println(user.getName()+" "+user.getPassword()+""+user.getAge());
}
sqlSession.commit();
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
根据id删除信息DeleteById
package com.controller;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import com.dbtools.GetSqlSession;
//删除id为4的信息
public class DeleteById {
public static void main(String[] args) {
try {
SqlSession sqlSession = GetSqlSession.getSqlSession();
/*逆向工程删除
sqlSession.delete("com.orm.UserMapper.deleteByPrimaryKey", 9);*/
sqlSession.delete("com.orm.UserMapper.deleteById", 9);
sqlSession.commit();
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
根据id修改信息UpdataById
package com.controller;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import com.dbtools.GetSqlSession;
import com.orm.User;
//更新id为5的信息
public class UpdataById {
public static void main(String[] args) {
try {
SqlSession sqlSession = GetSqlSession.getSqlSession();
/*逆向工程
User user = sqlSession.selectOne("com.orm.UserMapper.selectByPrimaryKey", 5);*/
User user = sqlSession.selectOne("com.orm.UserMapper.selecById", 5);
user.setName("young");
user.setPassword("654");
user.setAge(28);
/*逆向工程
sqlSession.update("com.orm.UserMapper.updateByPrimaryKey", user);*/
sqlSession.update("com.orm.UserMapper.updataById", user);
sqlSession.commit();
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}