【MyBatis】-----初识【MyBatis】--

一、核心配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3 <configuration>
 4     <environments default="development">
 5         <environment id="development">
 6             <transactionManager type="JDBC" />
 7             <!-- 配置数据库连接信息 -->
 8             <dataSource type="POOLED">
 9                 <property name="driver" value="com.mysql.jdbc.Driver" />
10                 <property name="url" value="jdbc:mysql:///mybatis" />
11                 <property name="username" value="root" />
12                 <property name="password" value="root" />
13             </dataSource>
14         </environment>
15     </environments>
16     <!-- 引用映射文件 -->
17     <mappers >
18         <mapper resource="com/myBatis/mapper/userMapper.xml"/>
19     </mappers>
20 </configuration>

SqlMapConfig.xml

二、实体类

 1 package com.myBatis.entity;
 2
 3 public class EUser {
 4     private Integer id;
 5     private String name;
 6     private Integer age;
 7     public int getId() {
 8         return id;
 9     }
10     public String getName() {
11         return name;
12     }
13     public void setName(String name) {
14         this.name = name;
15     }
16     public Integer getAge() {
17         return age;
18     }
19     public void setAge(Integer age) {
20         this.age = age;
21     }
22     public void setId(Integer id) {
23         this.id = id;
24     }
25     @Override
26     public String toString() {
27         return "EUser [id=" + id + ", name=" + name + ", age=" + age + "]";
28     }
29
30
31
32 }

EUser.java

三、实体类的映射文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3     <!--
 4     为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
 5     -->
 6     <mapper namespace="com.myBatis.mapper.userMapper.xml">
 7
 8     <!-- 根据id查询得到一个user对象 -->
 9     <select id="getUser" parameterType="int" resultType="com.myBatis.entity.EUser">
10         select * from users where id=#{id}
11     </select>
12     <!--  根据id查询删除一个user对象 -->
13     <delete id="deleteUser" parameterType="com.myBatis.entity.EUser">
14         delete from users where id=#{id}
15     </delete>
16       <!-- 创建用户(Create) -->
17     <insert id="addUser" parameterType="com.myBatis.entity.EUser">
18         insert into users values(null,#{name},#{age})
19     </insert>
20      <!-- 修改用户(Update) -->
21     <update id="updateUser" parameterType="com.myBatis.entity.EUser">
22         update users set name=#{name},age=#{age} where id=#{id}
23     </update>
24
25     </mapper>

userMapper.xml

四、测试方法

 1 package myBatisTest;
 2
 3 import java.io.IOException;
 4 import java.io.Reader;
 5
 6 import org.apache.ibatis.io.Resources;
 7 import org.apache.ibatis.session.SqlSession;
 8 import org.apache.ibatis.session.SqlSessionFactory;
 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10 import org.junit.Test;
11
12 import com.myBatis.entity.EUser;
13
14
15 public class TestUser {
16
17
18
19     //修改
20     @Test
21     public void testUpdateUser() {
22         try {
23             Reader reader= Resources.getResourceAsReader("SqlMapConfig.xml");
24             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
25             SqlSession sqlSession= sqlSessionFactory.openSession(true);
26             //先查找
27              String select = "com.myBatis.mapper.userMapper.xml.getUser";
28              EUser  user = sqlSession.selectOne(select, 5);
29              System.out.println(user);
30              //再修改
31             user.setName("改啦2122");
32             user.setAge(50);
33             String update = "com.myBatis.mapper.userMapper.xml.updateUser";
34             int i = sqlSession.update(update, user);
35              System.out.println(i);
36              EUser  user1= sqlSession.selectOne(select, 5);
37              System.out.println(user1);
38         } catch (IOException e) {
39             e.printStackTrace();
40         }
41     }
42
43
44     //添加
45     @Test
46     public void testAddUser() {
47         try {
48             Reader reader= Resources.getResourceAsReader("SqlMapConfig.xml");
49             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
50             SqlSession sqlSession= sqlSessionFactory.openSession(true);
51              String add = "com.myBatis.mapper.userMapper.xml.addUser";
52              EUser user = new EUser();
53             user.setName("用户孤傲苍狼");
54             user.setAge(20);
55             int i = sqlSession.insert(add, user);
56              System.out.println(i);
57         } catch (IOException e) {
58             e.printStackTrace();
59         }
60     }
61
62
63     //删除
64     @Test
65     public void testDeleteUser() {
66         try {
67             Reader reader= Resources.getResourceAsReader("SqlMapConfig.xml");
68             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
69             /**
70              * openSession(true)  手动提交
71              * 数据库中的autocommit针对的是数据库自己以及命令窗口,必须在程序手动提交
72              */
73             SqlSession sqlSession= sqlSessionFactory.openSession(true);
74              String delete = "com.myBatis.mapper.userMapper.xml.deleteUser";
75              int i= sqlSession.delete(delete, 4);
76              System.out.println(i);
77         } catch (IOException e) {
78             e.printStackTrace();
79         }
80     }
81
82
83     //查询
84     @Test
85     public void testGetUser() {
86
87         try {
88             Reader reader= Resources.getResourceAsReader("SqlMapConfig.xml");
89             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
90             SqlSession sqlSession= sqlSessionFactory.openSession(true);
91              String select = "com.myBatis.mapper.userMapper.xml.getUser";
92              EUser  user = sqlSession.selectOne(select, 1);
93              System.out.println(user);
94         } catch (IOException e) {
95             e.printStackTrace();
96         }
97     }
98 }

TestUser.java

注:

类的映射文件中的<mapper namespace="com.myBatis.mapper.userMapper.xml">  映射文件后缀名可不写

测试类中的 String select = "com.myBatis.mapper.userMapper.xml.getUser";   映射文件后缀名可不写

时间: 2024-10-11 13:04:46

【MyBatis】-----初识【MyBatis】--的相关文章

初识MyBatis(如何写配置文件和简单使用)

MyBatis3.x 这里简单贴一下MyBatis的介绍,具体使用方法会在代码中贴出. MyBatis的前世今生 MyBatis的前身就是iBatis,iBatis本是由Clinton Begin开发,后来捐给Apache基金会,成立了iBatis开源项目.2010年5月该项目由Apahce基金会迁移到了Google Code,并且改名为MyBatis. 尽管如此,它的包结构仍然为ibatis. www.mybatis.org/ https://github.com/mybatis MyBati

mybatis之旅第一篇-初识mybatis

一.JDBC的问题 为什么我们要使用mybatis,是因为JDBC存在以下问题 1. 数据库连接创建.释放频繁造成系统资源浪费,从而影响系统性能.如果使用数据库连接池可解决此问题. 2. Sql语句在代码中硬编码,造成代码不易维护,实际应用中sql变化的可能较大,sql变动需要改变java代码. 3. 使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护. 4. 对结果集解析存在硬编码(查询

Mybatis框架(一)初识Mybatis框架

一. 什么是框架框架(Framework)就是一个提供了可重用的公共结构的半成品,是应用程序的骨架.它就好比建筑物的骨架,结构统一固定,不需要考虑建筑物结构怎么设计,只需要考虑在这样的结构基础上,使用什么内容(建筑材料)来填充这个建筑物.对应到程序上也是一样的道理,程序结构固定,只需填充满足功能的相关代码即可.那么使用框架有什么优势呢?1. 保证了程序结构风格统一,便于学习和维护.2. 省去了结构设计,可以专心于业务逻辑的开发.3. 框架集中了前人的经验,使初学者能够写出结构优美,高质量的程序.

【MyBatis】MyBatis之配置讲解

1,MyBatis简介 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录. 2,搭建MyBatis框架 首先就是导入MyBatis.jar的jar包,然后把jar包和数据库连接的包放置到项目的lib目录

【mybatis】mybatis数据源源码剖析(JNDI、POOLED、UNPOOLED)

一.概述 二.创建 mybatis数据源的创建过程稍微有些曲折. 1. 数据源的创建过程: 2. mybatis支持哪些数据源,也就是dataSource标签的type属性可以写哪些合法的参数? 弄清楚这些问题,对mybatis的整个解析流程就清楚了,同理可以应用于任何一个配置上的解析上. 从SqlSessionFactoryBuilder开始追溯DataSource的创建.SqlSessionFactoryBuilder中9个构造方法,其中字符流4个构造方法一一对应字节流4个构造方法,都是将m

Hello Mybatis 02 mybatis generator

接着上一篇文章通过Mybatis完成了一个User的CRUD的功能之后,这篇开始还需要建立一个Blog类,这样就可以模拟一个简单的微博平台的数据库了. 数据库准备 首先我们,还是需要在数据库中新建一个表blog 1 CREATE TABLE `blog`.`blog` ( 2 `b_id` INT NOT NULL, 3 `b_title` VARCHAR(45) NULL, 4 `b_content` VARCHAR(255) NULL, 5 `user_id` INT NULL, 6 PRI

MyBatis笔记----MyBatis 入门经典的两个例子: XML 定义与注解定义

----致敬MyBatis官方开放文档让大家翻译,不用看书直接看文档就行了,mybatis的中文文档还需要完备的地方 简介 什么是 MyBatis ? MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录.

MyBatis之MyBatis环境搭建

MyBatis之MyBatis环境搭建 一.MyBatis开发环境搭建 1.引入Jar包 ①MyBatis mybatis-3.4.1.jar ant-1.9.6.jar ant-launcher-1.9.6.jar asm-5.1.jar cglib-3.2.4.jar commons-logging-1.2.jar javassist-3.21.0-GA.jar log4j-1.2.17.jar log4j-api-2.3.jar log4j-core-2.3.jar ognl-3.1.12

Spring+MyBatis实践—MyBatis数据库访问

关于spring整合mybatis的工程配置,已经在Spring+MyBatis实践—工程配置中全部详细列出.在此,记录一下几种通过MyBatis访问数据库的方式. 通过sqlSessionTemplate来进行数据库访问. 通过Dao接口来进行数据库访问. 使用@Select注解形式访问数据库 1.在spring框架中使用mybatis来进行数据操作配置,参考Spring+MyBatis实践—工程配置的spring-datasources.xml文件. 2.Demo1—通过sqlSession

【Mybatis】Mybatis接口编程方式实现增删改查

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 前面一章[Mybatis]Mybatis入门概述及第一个Mybatis实例实现增删改查,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询.请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selectOne("com.mucfc.model.EmployeerMapper.findEmployeerByID&qu