这里直接附上代码:

 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&amp;useUnicode=true&amp;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数据库的增删改查之二的更多相关文章

  1. mybatis实现MySQL数据库的增删改查

    环境: jdk1.8 mysql5.7 maven3.6.0 IDEA 什么是mybatis框架? MyBatis 是一款优秀的持久层框架, 它支持自定义 SQL.存储过程以及高级映射. MyBati ...

  2. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  3. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  4. 【转载】通过JDBC对MySQL数据库的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  5. 通过Loadruner对mysql数据库进行增删改查

    操作mysql数据库,是在实现mysql数据源配置的基础上操作,可先阅读:loadrunner参数化使用mysql数据源失败解决方法 写之前先理一下,数据库访问流程:打开数据库  --> 数据库 ...

  6. 通过jdbc连接MySql数据库的增删改查操作

    一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...

  7. c#winform简单实现Mysql数据库的增删改查的语句

    通过简单的SQL语句实现对数据库的增删改查. 窗口如下: 定义打开与关闭连接函数,方便每次调用: 增加指令: 删除指令: 修改指令: 查找指令: 表格情况:

  8. SpringBoot+Mybatis+Maven+MySQL逆向工程实现增删改查

    SpringBoot+Mybatis+MySQL+MAVEN逆向工程实现增删改查 这两天简单学习了下SpringBoot,发现这玩意配置起来是真的方便,相比于SpringMVC+Spring的配置简直 ...

  9. C++ API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

随机推荐

  1. LeetCode 020 Valid Parentheses

    题目描述:Valid Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']' ...

  2. 使用acme.sh从Let's Encrypt申请SSL证书

    Let's Encrypt 简介 Let's Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为 ...

  3. CentOS7系统tab命令补全

    在新安装的CentOS7系统中,如果没有安装命令补全的话,在systemctl管理服务的时候就没法用tab来自动补全,因此在安装完系统后,我们要再安装命令补全这个软件: yum -y install ...

  4. python多进程通讯踩坑记

    # 错误代码如下 from multiprocessing import Process from queue import Queue # 正确代码应该是这样,Process和Queue都来自mul ...

  5. day1(初始化项目结构)

    1.初始化项目结构  └─shiyanlou_project    │  .gitignore    │  README.en.md           # 英文    │  README.md    ...

  6. 第7.11节 案例详解:Python类实例变量

    上节老猿介绍了实例变量的访问方法,本节结合一个具体案例详细介绍实例变量访问. 本节定义一个Vehicle类(车),它有三个实例变量self.wheelcount(轮子数).self.power(动力) ...

  7. 【开发工具】 使用 Postman 进行接口测试 (配置全局 token,JWT可用)

    在前后端分离开发的项目中,使用postman来做接口测试会方便很多,然而因为JWT的鉴权,导致每半小时token都要更新一下,使测试变的很麻烦. 如果把token设置为全局变量,方便做测试,每次自动获 ...

  8. 图论-zkw费用流

    图论-zkw费用流 模板 这是一个求最小费用最大流的算法,因为发明者是神仙zkw,所以叫zkw费用流(就是zkw线段树那个zkw).有些时候比EK快,有些时候慢一些,没有比普通费用流算法更难,所以学z ...

  9. Java集合源码分析(三)——LinkedList

    简介 LinkedList是一个链表结构的列表,也可以被作为堆栈.队列或双端队列使用.它继承于AbstractSequentialList双向链表,实现了List.Deque.Cloneable.ja ...

  10. Element-ui 实现table的合计功能

    Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,其功能较为完善,根据其文档与demo学习,非常容易上手,但是我在使用其tabel组件时,发现我的功能 需求并不 ...