mybatis实现MySQL数据库的增删改查之二
这里直接附上代码:
1 package com.qijian.pojo;
2
3 import org.apache.ibatis.type.Alias;
4
5
6 public class User {
7 private int id;
8 private String name;
9 private String pwd;
10
11 @Override
12 public String toString() {
13 return "User{" +
14 "id=" + id +
15 ", name='" + name + '\'' +
16 ", pwd='" + pwd + '\'' +
17 '}';
18 }
19
20 public User(int id, String name, String pwd) {
21 this.id = id;
22 this.name = name;
23 this.pwd = pwd;
24 }
25
26 public int getId() {
27 return id;
28 }
29
30 public void setId(int id) {
31 this.id = id;
32 }
33
34 public String getName() {
35 return name;
36 }
37
38 public void setName(String name) {
39 this.name = name;
40 }
41
42 public String getPwd() {
43 return pwd;
44 }
45
46 public void setPwd(String pwd) {
47 this.pwd = pwd;
48 }
49 }
1 package com.qijian.utils;
2
3 import org.apache.ibatis.io.Resources;
4 import org.apache.ibatis.session.SqlSession;
5 import org.apache.ibatis.session.SqlSessionFactory;
6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
7
8 import java.io.IOException;
9 import java.io.InputStream;
10
11 public class MyBatisUtils {
12 private static SqlSessionFactory sqlSessionFactory;
13 private static String resource = "mybatis-Config.xml";
14 private static InputStream inputStream;
15
16 static {
17
18 //使用mybatis的第一步:获取 SqlSessionFactory对象
19 try {
20 inputStream = Resources.getResourceAsStream(resource);
21 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
22 } catch (IOException e) {
23 e.printStackTrace();
24 }
25 }
26 //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
27 // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
28 public static SqlSession getSqlSession() throws IOException {
29 return sqlSessionFactory.openSession();
30 }
31
32 }
1 package com.qijian.dao;
2
3 import com.qijian.pojo.User;
4
5 import java.util.List;
6
7 public interface UserMapper {
8
9 //查询全部用户
10 List<User> getUserList();
11
12 //根据id查询用户
13 User getUserById(int id);
14
15 //insert一个用户
16 int addUser(User user);
17
18 //修改一个用户
19 int updateUser(User user);
20
21 //删除一个用户
22 int deleteUser(int id);
23
24 }
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 <mapper namespace="com.qijian.dao.UserMapper">
6 <select id="getUserList" resultType="User">
7 select * from mybatis.user
8 </select>
9
10 <select id="getUserById" parameterType="int" resultType="com.qijian.pojo.User">
11 select *from mybatis.user where id = #{id};
12 </select>
13
14 <insert id="addUser" parameterType="com.qijian.pojo.User">
15 insert into mybatis.user(id,name,pwd) values(#{id},#{name},#{pwd});
16 </insert>
17
18
19 <update id="updateUser" parameterType="com.qijian.pojo.User">
20 update mybatis.user
21 set name = #{name},pwd = #{pwd}
22 where id=#{id};
23 </update>
24
25 <delete id="deleteUser" parameterType="int">
26 delete from mybatis.user where id=#{id};
27 </delete>
28
29 </mapper>
db.properties文件如下
1 driver = com.mysql.jdbc.Driver
2 url = jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8
3 username = root
4 password = root
mybatis-config.xml文件如下:
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5
6 <configuration>
7
8 <!--如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:
9 首先读取在 properties 元素体内指定的属性。
10 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
11 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。
12 -->
13 <properties resource="db.properties">
14 <property name="password" value="1234"/>
15 </properties>
16
17 <!-- 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为-->
18 <!-- <settings>-->
19 <!-- <setting name="" value=""/>-->
20 <!-- </settings>-->
21
22 <!-- 类型别名可为 Java 类型设置一个缩写名字。
23 它仅用于 XML 配置,意在降低冗余的全限定类名书写
24 当这样配置时,User 可以用在任何使用 com.qijian.pojo.User 的地方
25 -->
26 <!-- 每一个在包 com.qijian.pojo 中的 Java Bean,
27 在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。
28 比如 com.qijian.pojo.User 的别名为 user;
29 若有注解,则别名为其注解值
30 @Alias(”别名")-->
31 <typeAliases>
32 <typeAlias alias="User" type="com.qijian.pojo.User"/>
33 <package name="com.qijian.pojo.User"/>
34 </typeAliases>
35
36 <environments default="development">
37 <environment id="development">
38 <transactionManager type="JDBC"/>
39 <dataSource type="POOLED">
40 <property name="driver" value="${driver}"/>
41 <property name="url" value="${url}"/>
42 <property name="username" value="${username}"/>
43 <property name="password" value="${password}"/>
44 </dataSource>
45 </environment>
46
47 </environments>
48
49 <!-- 每一个Mapper.xml都需要在Mybatis核心配置文件中注册-->
50 <!-- 注意:
51 使用class绑定注册时,接口和它的Mapper配置文件必须同名
52 使用class绑定注册时,接口和它的Mapper配置文件必须在同一个包下-->
53 <mappers>
54 <mapper resource="com/qijian/dao/UserMapper.xml"/>
55 <!-- <mapper class="com.qijian.dao.UserMapper"/>-->
56 </mappers>
57
58 </configuration>
1 package com.qijian.dao;
2
3 import com.qijian.pojo.User;
4 import com.qijian.utils.MyBatisUtils;
5 import org.apache.ibatis.session.SqlSession;
6 import org.junit.Test;
7
8 import java.io.IOException;
9 import java.util.List;
10
11 public class UserDaoTest {
12 @Test
13 public void testGetUserLike() throws IOException {
14 SqlSession sqlSession = MyBatisUtils.getSqlSession();
15 UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
16 List<User> UserList = userMapper.getUserList();
17
18 for (User user:UserList) {
19 System.out.println(user);
20 }
21
22 }
23
24 }
结构:

注意:
该项目的改进主要是针对mybatis-config.xml文件
mybatis实现MySQL数据库的增删改查之二的更多相关文章
- mybatis实现MySQL数据库的增删改查
环境: jdk1.8 mysql5.7 maven3.6.0 IDEA 什么是mybatis框架? MyBatis 是一款优秀的持久层框架, 它支持自定义 SQL.存储过程以及高级映射. MyBati ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 通过Loadruner对mysql数据库进行增删改查
操作mysql数据库,是在实现mysql数据源配置的基础上操作,可先阅读:loadrunner参数化使用mysql数据源失败解决方法 写之前先理一下,数据库访问流程:打开数据库 --> 数据库 ...
- 通过jdbc连接MySql数据库的增删改查操作
一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...
- c#winform简单实现Mysql数据库的增删改查的语句
通过简单的SQL语句实现对数据库的增删改查. 窗口如下: 定义打开与关闭连接函数,方便每次调用: 增加指令: 删除指令: 修改指令: 查找指令: 表格情况:
- SpringBoot+Mybatis+Maven+MySQL逆向工程实现增删改查
SpringBoot+Mybatis+MySQL+MAVEN逆向工程实现增删改查 这两天简单学习了下SpringBoot,发现这玩意配置起来是真的方便,相比于SpringMVC+Spring的配置简直 ...
- C++ API方式连接mysql数据库实现增删改查
这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...
随机推荐
- passwrod和shadow文件介绍
1./etc/passwd #cat /etc/passwdroot:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbi ...
- 3D显微镜笔记
1. 三视图:能够正确反映物体长.宽.高尺寸的正投影工程图(主视图,俯视图,左视图三个基本视图)为三视图,这是工程界一种对物体几何形状约定俗成的抽象表达方式. 附上自己大二时候设计的减速器--设计了两 ...
- MiniProfiler性能监控分析工具在.NET项目中的使用
MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性能分析的轻量级程序.可以对一个页面本身,及该页面通过直接引用.Ajax.Iframe形式访问的其它页面进行监控 ...
- js创世纪--刨根问底原型和原型链
原型和原型链 看图说话: 1.对象内部具有[[Prototype]]属性,该属性不可直接访问,浏览器通过__proto__(两条'_')可以让用户读写该内部属性,最重要的是,该属性指向创建本对象的原型 ...
- C++中对一个布尔类型的变量按位取反结果不变
C++中对一个bool类型的变量按位取反是无效的.例如: bool a = true; bool b = ~a; // b的值还是true
- IKUN python 反序列化
题目过程1.一开始提示说要买到V6,观察源码,发现/static/img/lv/lv4.png.注册之后尝试寻找V6.观察url发现/shop?page=2.尝试写脚本匹配一下.发现在第181页. i ...
- 关于utf-8编码值 [ASIS 2019]Unicorn shop
0x00 前言 这题拿到之后有点懵,后来看了 网上的 wp 更加懵,网上大多数都是直接说 去 compart 搜thousand,然后找个大于1337 的就可以,至于为什么?基本都没有给出解答.于是乎 ...
- 2. Spring早期类型转换,基于PropertyEditor实现
青年时种下什么,老年时就收获什么.关注公众号[BAT的乌托邦],有Spring技术栈.MyBatis.JVM.中间件等小而美的原创专栏供以免费学习.分享.成长,拒绝浅尝辄止.本文已被 https:// ...
- 学习笔记:Splay
代码适中.非常灵活的平衡树. 需要前置:二叉搜索树. 一些基础的函数: int idx, ch[N][2], cnt[N], sz[N], fa[N]; /* idx 是节点计数, ch[i][0 / ...
- AcWing 316 .减操作
题目链接 大型补档计划 没想出来去看题解了... 关键是发现无论怎样括号嵌套,每个元素始终只有对答案的贡献为 + a[i] 或者 - a[i]. 而且第一个必然贡献是 +1, 第二个必然是 -1. 所 ...