博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis框架基于注解的方式,实对数据现增删改查
阅读量:4318 次
发布时间:2019-06-06

本文共 4072 字,大约阅读时间需要 13 分钟。

编写Mybatis代码,与spring不一样,不需要导入插件,只需导入架包即可;

在lib下 导入mybatis架包:mybatis-3.1.1.jar

mysql驱动架包:mysql-connector-java-5.1.6-bin.jar

 

在src目录下建立xml配置文件:conf.xml,是一些连接数据库的配置:

 

这是基于注解的方式,所以建立一个接口,在定义的方法上配置上应有的注解,注解中含有sql语句,需要提示的是这个接口不需要类去实现它

package com.atguigu.mybatis.test3;import java.util.List;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;import com.atguigu.mybatis.test.User;public interface UserMapper {        /*     * 这是基于注解的映射方式,实现对数据的增删改查,将sql语句直接写在注解的括号中     * 这是一个接口,其不需要类去实现它     * 下边分别是插入,删除,修改,查询一个记录,查询所有的记录     * */        @Insert("insert into users(name,age) values(#{name},#{age})")    public void insertT(User user);        @Delete("delete from users where id=#{id}")    public void deleteById(int id);        @Update("update users set name=#{name},age=#{age} where id=#{id}")    public void updateT(User user);        @Select("select * from users where id=#{id}")    public User getUser(int id);        @Select("select * from users")    public List
getAllUsers();}

 

封装列:User,这儿只写属性,getter和setter,tostring就不写了

private int id;private String name;private int age;

 

建立MybatisUtils类,有一个方法,加载mybatis和构建sqlSession

package com.atguigu.mybatis.test;import java.io.InputStream;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MybatisUtils {    public static SqlSessionFactory getFactory(){        String resource="conf.xml";                //加载mybatis 的配置文件(它也加载关联的映射文件)        InputStream is=MybatisUtils.class.getClassLoader().getResourceAsStream(resource);                //构建sqlSession 的工厂        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);        return factory;    }}

 

实现增删改查的方法

package com.atguigu.mybatis.test3;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Test;import com.atguigu.mybatis.test.MybatisUtils;import com.atguigu.mybatis.test.User;public class UserMapperTest {        @Test    //插入数据    public void testInsert(){        SqlSessionFactory factory=MybatisUtils.getFactory();        SqlSession session=factory.openSession(true);        //使用反射的方法        UserMapper mapper=session.getMapper(UserMapper.class);        mapper.insertT(new User(-1, "p", 4));                session.close();    }        @Test    //删除数据    public void testDelete(){        SqlSessionFactory factory=MybatisUtils.getFactory();        SqlSession session=factory.openSession(true);        UserMapper mapper=session.getMapper(UserMapper.class);        mapper.deleteById(1);        session.close();    }        @Test    //修改数据    public void testUpdate(){        SqlSessionFactory factory=MybatisUtils.getFactory();        SqlSession session=factory.openSession(true);        UserMapper mapper=session.getMapper(UserMapper.class);        mapper.updateT(new User(2, "jjjjj", 232));        session.close();    }        @Test    //获取一条数据    public void testGetUser(){        SqlSessionFactory factory=MybatisUtils.getFactory();        SqlSession session=factory.openSession(true);        UserMapper mapper=session.getMapper(UserMapper.class);        User user=mapper.getUser(2);        session.close();        System.out.println(user);    }        @Test    //获取所有数据    public void testGetAllUsers(){        SqlSessionFactory factory=MybatisUtils.getFactory();        SqlSession session=factory.openSession(true);        UserMapper mapper=session.getMapper(UserMapper.class);        List
users=mapper.getAllUsers(); session.close(); System.out.println(users); }}

 

转载于:https://www.cnblogs.com/lxnlxn/p/5996707.html

你可能感兴趣的文章
Python补充02 Python小技巧
查看>>
个人项目制作(PSP)
查看>>
【转】完美解决iphone连电脑蓝牙出现bluetooth外围设备无法正确安装
查看>>
有关TabNavigation的方式【项目】
查看>>
C#设计模式-访问者模式
查看>>
CS round--36
查看>>
Microsoft patterns & practices 学习笔记(0)
查看>>
python之路_前端之HTML初始
查看>>
UML基础:统一建模语言简介
查看>>
Oozie安装的说明
查看>>
2 weekend110的SecureCRTPortable远程连接 + 上传安装jdk + 上传安装配置hadoop
查看>>
【BZOJ-2733】永无乡 Splay+启发式合并
查看>>
Common Subsequence(最长公共子序列)
查看>>
weighing scheme
查看>>
java_简单解析ArrayList_iterable
查看>>
hashlib和hmac
查看>>
设计类作品
查看>>
2014-04-19编程之美初赛题目及答案解析
查看>>
jmeter+ant+jenkins+mac 报告优化(三) 使用命令行执行jmeter方式生成多维度的图形化HTML报告...
查看>>
Android设计模式系列-适配器模式
查看>>