1.引入jar包
(1).mybatis-3.2.7jar核心jar
(2).mysql核心jar
(3).junit-4.9.jar
2.创建mybatis全局配置文件SqlMapConfig.xm(名字自定义)
配置了数据源、事务等mybatis运行环境,配置映射文件(配置sql语句)
3.mapper代理开发映射文件User.xml
4.目录结构如下
1.配置myBatis全局配置文件
2.配置User.xml映射,将sql语句封装到mappedStatement对象中,进行增删改查
SELECT
LAST_INSERT_ID()
insert into USER (id,username,birthday,sex,address)
values(#{id},#{username},#{birthday},#{sex},#{address})
delete from USER WHERE id
= #{id}
update USER set username =
#{username},birthday=#{birthday},sex=#{sex},address=#{address} where
id = #{id}
3.根据Mybatis框架结构,在java代码中创建sqlSession 执行程序。
package cn.itcast.mybatis.first; import java.io.IOException; import java.io.InputStream; import java.util.Date; 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 org.junit.Test; import cn.itcast.mybatis.po.User; /** * 入门程序 2016年9月21日14:46:51 * * @author fxq * */ public class MybatisFirst { //获得SqlSession public SqlSession getSqlSession() throws IOException { // mybastis配置文件 String resource = "SqlMapConfig.xml"; // 得到配置文件流 InputStream impuStream = Resources.getResourceAsStream(resource); // 创建会话工厂 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder() .build(impuStream); // 通过工厂得到sqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; } // 根据id查询用户信息,得到一条记录结果 @Test public void findUserByIdTest() throws IOException { //获得SqlSession SqlSession sqlSession=getSqlSession(); // 通过sqlSession操作数据库 // 第一个参数:映射文件中的statement的id,等于=namespace+"."+statement的id; // 第二个参数:指定和映射文件所匹配的parameterType类型的参数 // sqlSession.selectOne结果是与映射文件中的所匹配的resultType类型的对象; User user = sqlSession.selectOne("test.findUserById", 1); System.out.println(user); // 释放资源 sqlSession.close(); } /** * 模糊查询 * * @throws IOException */ @Test public void findUserbyNameTest() throws IOException { //获得SqlSession SqlSession sqlSession=getSqlSession(); // List中的user和映射文件中resultType所指定的类型一直 ListuserList = sqlSession .selectList("test.findUserByName", "小明"); System.out.println(userList); sqlSession.close(); } /** * 插入数据 * * @throws IOException */ @Test public void insertUserTest() throws IOException { //获得SqlSession SqlSession sqlSession=getSqlSession(); // 插入用户对象 // 添加用户信息 User user = new User(); user.setUsername("张小明"); user.setBirthday(new Date()); user.setSex("1"); user.setAddress("河南郑州"); sqlSession.insert("test.insertUser", user); // 提交 sqlSession.commit(); System.out.println(user.getId()); sqlSession.close(); } /** * 删除用户 * * @throws IOException */ @Test public void deleteUserTest() throws IOException { //获得SqlSession SqlSession sqlSession=getSqlSession(); sqlSession.delete("test.deleteUser", 31); // 提交 sqlSession.commit(); sqlSession.close(); } /** * 更新用户 * * @throws IOException */ @Test public void updateUserTest() throws IOException { //获得SqlSession SqlSession sqlSession=getSqlSession(); User user = new User(); user.setId(28); user.setBirthday(new Date()); user.setUsername("范晓权"); user.setAddress("河北省鸡泽县"); user.setSex("2"); sqlSession.update("test.updateUser", user); sqlSession.commit(); sqlSession.close(); } }
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。