MyBatis3-topic-01 -安装/下载/官方文档 -执行输入一条已经映射的sql语句
mybatis XML 映射配置文件 (官方文档)
-对象工厂(objectFactory)
-配置环境(environments)
-映射器(mappers)
本地IDEA搭建/测试步骤
- 创建数据库
-   执行mysql查询
CREATE DATABASE mybatis; 
 CREATE TABLE tbl_employee(
 id INT(11) PRIMARY KEY AUTO_INCREMENT,
 last_name VARCHAR(25),
 gender CHAR(1),
 email VARCHAR(25)
 );
- 插入一条数据
 
 
-   执行mysql查询
- 加载jar包 :  
-    
- log4.jar 用于显示查询信息;
 
-   
- 创建工程的资源文件夹(source folder) conf ,存储XML文件
-    
- <?xml version="1.0" encoding="UTF-8" ?> 
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
 <param name="Encoding" value="UTF-8" />
 <layout class="org.apache.log4j.PatternLayout">
 <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
 </layout>
 </appender>
 <logger name="java.sql">
 <level value="debug" />
 </logger>
 <logger name="org.apache.ibatis">
 <level value="info" />
 </logger>
 <root>
 <level value="debug" />
 <appender-ref ref="STDOUT" />
 </root>
 </log4j:configuration>- log4j.xml (用于辅助显示sql查询信息) - <?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="day_01.EmployeeMapper">
 <select id="selectEmp" resultType="day_01.Employee">
 select id,last_name lastname,gender,email from tbl_employee where id = #{id}
 </select>
 </mapper>- EmployeeMapper.xml - <!-- 
 namespace: 名称空间
 id: 唯一标识
 resultType:返回值类型
 #{id} : 从传递过来的参数中取出id值
 !-->
- <?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>
 <environments default="development">
 <environment id="development">
 <transactionManager type="JDBC"/>
 <dataSource type="POOLED">
 <property name="driver" value="com.mysql.jdbc.Driver"/>
 <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
 <property name="username" value="root"/>
 <property name="password" value="123456"/>
 </dataSource>
 </environment>
 </environments>
 <!--将我们写好的sql映射文件{EmployeeMapper.xml},
 一定要注册到本全局配置文件{mybatis-config.xml}中-->
 <mappers>
 <mapper resource="EmployeeMapper.xml"/>
 </mappers>
 </configuration>- 全局配置文件{mybatis-config.xml} 
 
-   
- 创建Employee 的JavaBean类 , 加上toString()方法
-    
- package day_01; public class Employee {
 private Integer id;
 private String lastname,email,gender; @Override
 public String toString() {
 return "Employee{" +
 "id=" + id +
 ", lastname='" + lastname + '\'' +
 ", email='" + email + '\'' +
 ", gender='" + gender + '\'' +
 '}';
 } public Integer getId() {
 return id;
 } public void setId(Integer id) {
 this.id = id;
 } public String getLastname() {
 return lastname;
 } public void setLastname(String lastname) {
 this.lastname = lastname;
 } public String getEmail() {
 return email;
 } public void setEmail(String email) {
 this.email = email;
 } public String getGender() {
 return gender;
 } public void setGender(String gender) {
 this.gender = gender;
 }
 }
- 创建class MybatisTest01 测试类,执行并输入一条已经映射的sql语句
-   
/** 
 * 1. 根据xml配置文件(全局配置文件),创建一个sqlSessionFactory 对象,
 * 有一些运行环境的信息
 * 2.sql映射文件:配置了每一个sql ,以及sql的封装规则;
 * 3.将sql映射文件保存注册在全局配置文件中;
 * 4.写代码:
 * 1): 根据全局配置文件得到sqlSessionFactory;
 * 2): 使用sqlSession工厂,获得到sqlSession 对象,使用它来进行增删改查;
 * 一个sqlSession 就是代表和数据库的一次会话,用完关闭;
 * 3): 使用sql的唯一标识来告诉MyBatis执行那个sql,sql都是保存在sql映射文件中;
 */
 
-   
public class MybatisTest01 {
    @Test
    public void test01() throws IOException {
            //第一步根据xml配置文件(全局配置文件)
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //第二步 ,获取sqlSession的实例,能够执行已经映射的sql语句
        SqlSession openSession=sqlSessionFactory.openSession();
        try {
            //格式: openSession.selectOne("mapper的namespace+id" , arg1:传入数据)
            Employee employee = openSession.selectOne("day_01.EmployeeMapper.selectEmp",1);
            System.out.println(employee);
        } finally {
            openSession.close();
        }
    }
}
MyBatis3-topic-01 -安装/下载/官方文档 -执行输入一条已经映射的sql语句的更多相关文章
- 在 Ubuntu 上安装 TensorFlow (官方文档的翻译)
		本指南介绍了如何在 Ubuntu 上安装 TensorFlow.这些指令也可能对其他 Linux 变体起作用, 但是我们只在Ubuntu 14.04 或更高版本上测试了(我们只支持) 这些指令. 一 ... 
- selenium安装及官方文档
		selenium-python官方文档: https://selenium-python.readthedocs.io/ python3.5已安装的情况下,安装示意图如下 命令行输入 pip3 ins ... 
- ubuntu16.04下snort的安装(官方文档安装)(图文详解)
		不多说,直接上干货! 最近为了科研,需要安装和使用Snort. snort的官网 https://www.snort.org/ Snort作为一款优秀的开源主机入侵检测系统,在windows和Linu ... 
- ubuntu14.04下snort的安装(官方文档安装)(图文详解)
		不多说,直接上干货! 最近为了科研,需要安装和使用Snort. snort的官网 https://www.snort.org/ Snort作为一款优秀的开源主机入侵检测系统,在windows和Linu ... 
- keepalived 安装篇-官方文档
		官方安装文档 http://www.keepalived.org/doc/installing_keepalived.html Installing Keepalived Install keepal ... 
- Daphile 安装手册 -- 官方文档译文 [原创]
		Daphile 安装手册(Daphile Installation) 英文原文:https://www.daphile.com/download/DaphileInstallation.pdf 采集日 ... 
- Elasticsearch官方文档离线访问实操指南
		文章转载自:https://mp.weixin.qq.com/s/Cn9ddkj-cne5pKtfOgNPbg 延申一下,不仅能下载Elasticsearch官方文档,还能下载其他软件的官方文档,详看 ... 
- MyBatis官方文档——入门
		入门 安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可. 如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 ... 
- CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)
		安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ... 
随机推荐
- 洛谷 题解 UVA247 【电话圈 Calling Circles】
			[题意] 如果两个人互相打电话(直接或者间接),则说他们在同一个电话圈里.例如,\(a\)打给\(b\),\(b\)打给\(c\),\(c\)打给\(d\),\(d\)打给\(a\),则这四个人在同一 ... 
- git下载仓库的部分目录
			有这样的需求,比如某个仓库里包含可执行文件[编译后的文件]或jar包之类的,他们太大我不需要而且我自己可以编译或导入: 或者是某个仓库是自己专门用来放demos的,里面有很多的demo项目,我可能只想 ... 
- Deepin安装前分区总结
			linux的分区的概念应该这么理解,为某个目录创建/挂载分区,比如为/home创建/挂载到某个分区上: 1.需要/boot分区,1.5G: 2./分区,100G:[会自动创建其他目录如/srv,/ro ... 
- LeetCode 53. 最大子序和(Maximum Subarray)
			53. 最大子序和 53. Maximum Subarray 题目描述 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. LeetCode53. M ... 
- Spyder中报错: Check failed: PyBfloat16_Type.tp_base != nullptr
			报错问题: 问题1:tensorflow/python/lib/core/bfloat16.cc:675] Check failed: PyBfloat16_Type.tp_base != nullp ... 
- 剑指offer41:所有和为S的连续正数序列,例如,有多少种连续的正数序列的和为100
			1 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久 ... 
- bootstrap栅格系统的container和row一些关系
			container有个15px的padding,而我们设定的每个col也都有15px的padding,如果两者直接配合,那么就会产生30px的间距,导致内容和浏览器边框的距离较大,所以用row将所有的 ... 
- Redis 如何与数据库事务保持一致
			考虑一个问题,redis 如何 与 数据库保持一致性的问题. 举栗子:如果我们在开发过程中遇到这样的一种情况,我们删除 redis中token 的同时 也需要修改数据库中 储存的 token 的状态为 ... 
- MySQL 体系结构及存储引擎
			MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ... 
- 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)
			原文:在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉 ... 
