myBati初学
创建数据库(y2165)
MyBatis环境搭建
1.在pom.xml引入依赖
2.得替换build节点,为了让程序编译在main中所有子包下的配置文件
3.构建大配置,位于resources
<?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">
<!-- 通过这个配置文件,完成mybatis与数据库的连接 -->
<configuration><!--根节点-->
<!--别名设定-->
<typeAliases>
<package name="cn.happy.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<!--
transactionManager:JDBC保证事务的
update
delete
事务分类:JDBC:编程式事务
xxx.beginTransaction()
tx.commit()
tx.rollback()
配置式事务
JDBC|MANAGED
区别
-->
<!-- 配置事物管理采用JDBC -->
<transactionManager type="JDBC"/>
<!--
POOLED:MyBatis内置的连接池
c3p0连接池
POOLED 、UNPOOLED 、JNDI
-->
<!-- POOLED:mybatis的数据源,JNDI:基于tomcat的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///y2165"/>
<property name="username" value="cd"/>
<property name="password" value="000"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/happy/dao/IDeptDAO.xml"/>
</mappers>
</configuration>
4.构建实体类
package cn.happy.entity;
/**
* Created by lenovo on 2017/7/7.
*/
public class Dept {
private Integer deptNo;
private String deptName;
public Integer getDeptNo() {
return deptNo;
}
public void setDeptNo(Integer deptNo) {
this.deptNo = deptNo;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
}
5.构建小配置
<?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 ">
<!--namespace:
命名空间:区分不同空间下的同名SQLID
A: findlAll
B: findAll
-->
<mapper namespace="cn.happy.dao.IDeptDAO" >
<!--SQL标签
id:唯一锁定到SQL标识
paramenterType:SQL语句的入参 可以省略
resultType:
增删除操作:不能 写
查询:单个实体的类型
-->
<!--查询所有-->
<select id="getAllList" resultType="Dept">
SELECT * FROM Dept
</select>
<!--待条件查询-->
<select id="getDeptById" parameterType="int" resultType="Dept">
select * from Dept where deptNo=#{deptNo}
</select>
</mapper>
6.在大配置中关联小配置
<mappers>
<mapper resource="cn/happy/dao/IDeptDAO.xml"/>
</mappers>
7.书写测试类
package cn.happy.test;
import cn.happy.dao.IDeptDAO;
import cn.happy.entity.Dept;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.jdbc.SQL;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* Created by lenovo on 2017/7/9.
*/
public class MyBatisTest01 {
//单元测试
@Test
//1.查询所有使用getMapper()
public void testall() {
//1 获取到大配置
String path = "mybatis-config.xml";
try {
InputStream is = Resources.getResourceAsStream(path);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
IDeptDAO de = session.getMapper(IDeptDAO.class);
List<Dept> list = de.getAllList();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
//2.待条件查询 Mapper的使用
public void testGetOneDept() {
String path = "mybatis-config.xml";
try {
InputStream is = Resources.getResourceAsStream(path);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
IDeptDAO dao = session.getMapper(IDeptDAO.class);
Dept dept = dao.getDeptById(1);
System.out.println(dept.getDeptName());
} catch (IOException e) {
e.printStackTrace();
}
}
使用getMapper查询所有结果
使用getMapper带条件查询结果
myBati初学的更多相关文章
- DDD初学指南
去年就打算总结一下,结果新换的工作特别忙,就迟迟没有认真动手.主要内容是很多初学DDD甚至于学习很长时间的同学没有弄明白DDD是什么,适合什么情况.这世界上没有银弹,抛开了适合的场景孤立的去研究DDD ...
- gulp初学
原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js 配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不 ...
- 初学seaJs模块化开发,利用grunt打包,减少http请求
原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...
- 初学Vue2.0--基础篇
概述: 鉴于本人初学,使用的编译器是webStorm,需添加对VUE的支持,添加方法可以参考 http://www.jianshu.com/p/142dae4f8b51. 起步: 1. 扎实的 Jav ...
- 初学Python
初学Python 1.Python初识 life is short you need python--龟叔名言 Python是一种简洁优美语法接近自然语言的一种全栈开发语言,由"龟叔&quo ...
- Javascript初学篇章_5(对象)
对象 Javascript是一种面向对象的语言,因此可以使用面向对象的思想来进行javascript程序设计对象就是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体.举个例子,一只猫是个对象, ...
- 初学Objective-C语言需要了解的星星点点
其实大多数开发初学者都有一些相同的特点,可以说是一种“职业病”.Most有其他平台开发基础的初学者,看到Xcode就想摩拳擦掌:看到Interface Builder就想跃跃欲试:而 ...
- matlab初学之句柄
文章出处:http://www.cnblogs.com/CBDoctor/archive/2012/04/06/2434072.html 在matlab中,每一个对象都有一个数字来标识,叫做句柄.当每 ...
- 初学HTML5、初入前端
学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...
随机推荐
- Constructing Roads In JGShining's Kingdom
点击打开题目链接 本题目是考察 最长递增子序列的 有n^2 n(logn) n^2 会超时的 下面两个方法的代码 思路 可以百度LIS LCS dp里面存子序列 n(logn) ...
- [Balkan 2007] Mokia
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1176 [算法] CDQ分治 + 树状数组即可 时间复杂度 : O(Nlog^2N) ...
- codevs 1497取余运算
1497 取余运算 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamon 题目描述 Description 输入b,p,k的值,编程计算bp mod k的值. ...
- Mysql数据库的打开和关闭
Mysql数据库的打开和关闭: 选择计算机(win7)-右键管理 在新窗口选择--服务 5 找到mysql,然后右键-启动(停止)
- 小程序wx:key中的关键字*this
“保留关键字 *this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字,如果是对象则不可以 data:{ array:[1,2,3,4,5], ob ...
- 【原】putty配置下载
文章出自:http://www.cnblogs.com/david-zhang-index/p/3205354.html putty配置下载,已经配置好了,颜色非常不错 PUTTY.zip
- [hdu2457]DNA repair(AC自动机+dp)
题意:给出一些不合法的模式DNA串,给出一个原串,问最少需要修改多少个字符,使得原串中不包含非法串. 解题关键:多模式串匹配->AC自动机,求最优值->dp,注意在AC自动机上dp的套路. ...
- Servlet中init-param与context-param的区别
web.xml文件中Servlet中配置如下: <servlet> <servlet-name>loginServlet</servlet-name> <se ...
- Spring Boot 学习系列(08)—自定义servlet、filter及listener
此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 传统的filter及listener配置 在传统的Java web项目中,servlet.filter和li ...
- fetch + async await 使用原生JS发送网络请求
由于现在主流浏览器支持Fetch API,无需引用其他库就能实现AJAX,一行代码就搞定,可以说是非常方便了. export default { name: 'HelloWorld', data() ...