Mybatis的使用(1)
1:新建maven项目,file->project->maven
2:在建好的maven项目中,打开pom.xml文件,加入mybatis所需要的依赖:
<!-- mybatis核心包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!-- java连接数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
3:由于涉及到静态资源的导出问题,故需要在pom.xml中加入如下代码
<!-- 静态资源导出问题-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
4:由于未涉及到spring,springmvc等,故三层架构先建立一层,也就是dao层(数据层),在dao层建立一个接口(userMapper),然后再新建一个userMapper.xml文件,方便动态代理模式的使用

5:在mysql中建立一张用户表(user),包含id,name,pwd等三个简单字段
6:在建立一个JavaBean,建立一个pojo包,包中建立一个user实体类,与数据库中的user表对应。如下所示:
public class User {
private Integer Id;
private String name;
private String pwd;
public User() {
}
public User(Integer id, String name, String pwd) {
Id = id;
this.name = name;
this.pwd = pwd;
}
public User(String name, String pwd) {
this.name = name;
this.pwd = pwd;
}
public Integer getId() {
return Id;
}
public void setId(Integer id) {
Id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"Id=" + Id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
7:准备工作完毕,下面需要建立一些xml文件和properties文件:
8:在resource包下建立database.properties文件(作用是为了连接数据库)以及mybatis.xml文件(mybatis核心配置文件)
database.properties文件:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///mybatis?useSSL=false&useServerPrepStmts=true&useUnicode=true&characterEncoding=utf-8
username=root
password=ztb
mybatis.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>
<!--数据库的资源路径-->
<properties resource="db.properties"></properties>
<!-- 别名-->
<typeAliases>
<package name="com.ztb.pojo"/></typeAliases>
<environments default="mysql">
<environment id="mysql">
<!-- 事务交给程序员来做-->
<transactionManager type="JDBC"></transactionManager>
<!-- mybatis中默认的连接池-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 注册usermapper-->
<mappers>
<mapper class="com.ztb.dao.UserMapper"></mapper>
</mappers>
</configuration>
9:在userMapper接口处写访问数据库的增删改查方法,方便userMapper.xml调用。(注意:接口和xml文件的名字一定要一样)
public interface UserMapper {
//查询所有用户
List<User> seleteAll();
//根据Id查找用户
User selectById(int id);
//增加用户
int addUser(User user);
//删除用户
int deleteById(int id);
// 更新用户
int update(User user);
}
10:在userMapper中写下相应的增删改查语句。
<?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.ztb.dao.UserMapper">
<select id="seleteAll" resultType="com.ztb.pojo.User">
select * from mybatis.user
</select>
<select id="selectById" resultType="com.ztb.pojo.User" parameterType="int">
select * from mybatis.user where id= #{id}
</select>
<insert id="addUser" parameterType="com.ztb.pojo.User">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
<delete id="deleteById" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>
<update id="update" parameterType="com.ztb.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};
</update>
</mapper>
11:至此,一切准备工作完毕,下面开始测试增删改查
12:在test文件下新建测试类:
public class Test1 {
SqlSession sqlSession=null;
@Before
public void Before1() throws IOException {
InputStream inputStream = Resources.getResourceAsStream("mybaits.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession();
}
@After
public void after(){
sqlSession.close();
}
@Test
public void test11() throws IOException {
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<User> users = userMapper.seleteAll();
for (User user : users) {
System.out.println(user);
}
}
@Test
public void test12(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.selectById(2);
System.out.println(user);
}
@Test
public void test13(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.addUser(new User(8,"张三", "123456"));
sqlSession.commit();
System.out.println(i);
}
@Test
public void test14(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.deleteById(8);
sqlSession.commit();
System.out.println(i);
}
@Test
public void test15(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.update(new User(0,"张三","111111"));
sqlSession.commit();
System.out.println(i);
}
}
Mybatis的使用(1)的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- [原创]mybatis中整合ehcache缓存框架的使用
mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...
- 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程
本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...
- mybatis plugins实现项目【全局】读写分离
在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...
- MyBatis基础入门--知识点总结
对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...
- Mybatis XML配置
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- MyBatis源码分析(一)开篇
源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...
- (整理)MyBatis入门教程(一)
本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...
- MyBatis6:MyBatis集成Spring事物管理(下篇)
前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...
随机推荐
- Swift初探01 变量与控制流
Swift初探01 变量与控制流 输出"hello world"是几乎学习所有编程语言的第一课,这是程序员的情怀. 所以我们学习swift的第一步,就是输出一句"Hell ...
- Object类和对象类型转换
学习内容:Object类和对象类型转换 一.Object类 1.Object类是所有类的父类,是Java类层中最高层的类. 2.getClass()方法:返回对象执行时的Class实例,然后用此实例调 ...
- Vue关闭语法检测
为什么?为了防止写到一半保存,报错.关闭默认的语法检测 新建vue.config.js 1.vue.config.js的作用是允许你修改脚手架中wekpack的默认参数. 2.vue.config.j ...
- 深入浅出Nginx实战与架构
本文主要内容如下(让读者朋友们深入浅出地理解Nginx,有代码有示例有图): 1.Nginx是什么? 2.Nginx具有哪些功能? 3.Nginx的应用场景有哪些? 4.Nginx的衍生生态有哪些? ...
- Ceph集群搭建记录
环境准备 基础环境 node00 192.168.247.144 node00 node01 192.168.247.135 node01 node02 192.168.247.143 node02 ...
- MySQLDocker 主从复制搭建
MySQLDocker 主从复制搭建 MySQLDocker 的搭建 docker search mysql docker pull mysql/mysql-server:8.0.26 docker ...
- .NET C#杂谈(1):变体 - 协变、逆变与不变
0. 文章目的: 介绍变体的概念,并介绍其对C#的意义 1. 阅读基础 了解C#进阶语言功能的使用(尤其是泛型.委托.接口) 2. 从示例入手,理解变体 变体这一概念用于描述存在继承关系的 ...
- sql语句中 int(1)与int(10)有什么区别?资深开发竟然能理解错
过完春节该投入战斗了,上班第一天发现了一个挺有意思的知识点给大家分享一下:一直以来的的误区我们都认为了int后面的跟的数字为最大显示宽度会对后面插入的参数会有限制,其实倒不是这样的 # 困惑 最近遇到 ...
- SCI论文写作注意事项
1. 先写结论:(划定范围,以防添加无效的内容) 并非一开始就把整个结论都写出来,而是把
- 验证cuda和cudnn是否安装成功(转载)
本人cuda安装目录: 当然cuda安装目录也可默认:此处为方便安装不同cuda版本,所以单独建了文件夹. 转载自:https://zhuanlan.zhihu.com/p/139668028 安装完 ...