Mybatis学习笔记之一——牛刀小试
1、Mybaits核心对象SqlSession的作用:
(1)向SQL语句传入参数;
(2)执行SQl语句;
(3)获取执行SQL语句的结果;
(4)事务的控制;
2、核心配置文件(Configration.xml):
<?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>
<!--
<settings>
<setting name="useGeneratedKeys" value="false"/>
<setting name="useColumnLabel" value="true"/>
</settings> <typeAliases>
<typeAlias alias="UserAlias" type="org.apache.ibatis.submitted.complex_property.User"/>
</typeAliases> -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/><!-- 配置sql驱动 -->
<property name="url" value="jdbc:mysql://localhost:3306/school"/><!-- 配置数据库地,其中school为数据名称 -->
<!-- jdbc:mysql://127.0.0.1:3306/school --> <property name="username" value="root"/><!-- 配置数据库用户名 -->
<property name="password" value="********"/><!-- 配置数据库密码-->
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sysker/config/Students.xml"/><!-- 需要导入的xml配置文件,一般用于配置表格数据表格 -->
</mappers>
</configuration>
3、获取SqlSession:
(1)通过配置文件获取数据库连接相关信息:
Reader reader = Resources.getResourceAsReader("com/sysker/config/Configuration.xml");
(2)通过配置信息构建SqlSessionFactory:
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
(3)通过sqlSessionFactory打开数据库会话:
session = sqlSessionFactory.openSession();
下面是完整代码:
package com.sysker.db; import java.io.IOException;
import java.io.Reader; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; /**
* 访问数据库类
*
*/
public class DBAccess {
public SqlSession getSqlSession() throws IOException{
SqlSession session =null;
//通过配置文件获取数据库连接信息
Reader reader = Resources.getResourceAsReader("com/sysker/config/Configuration.xml");
//通过配置信息构建一个SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//通过sqlsessionFactory打开一个数据库会话
session = sqlSessionFactory.openSession(); return session;
}
}
4、配置与数据表格相关的sql语句(Students.xml):
<?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="Studnets"> <resultMap type="com.sysker.beans.Students" id="StudentsResult">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="classname" jdbcType="VARCHAR" property="classname"/>
<result column="sex" jdbcType="VARCHAR" property="sex"/>
<result column="age" jdbcType="VARCHAR" property="age"/>
</resultMap> <select id="getAllStudents" resultMap="StudentsResult">
SELECT id,name,classname,sex,age FROM student
</select>
</mapper>
5、通过Dao层来执行SQL操作:
package com.sysker.dao; import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import org.apache.ibatis.session.SqlSession; import com.sysker.beans.Students;
import com.sysker.db.DBAccess;
import com.sysker.jdbc.DBContol; public class StudentDAO { public List<Students> getAllStudents(){
DBAccess dbAccess = new DBAccess();
List<Students> studentsList = new ArrayList<Students>();
SqlSession sqlSession = null;
try {
sqlSession = dbAccess.getSqlSession();
//通过sqlSession执行sql语句
studentsList = sqlSession.selectList("Students.getAllStudents");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(sqlSession!=null){
sqlSession.close();
}
} return studentsList; } public static void main(String[] args) {
StudentDAO studentDAO = new StudentDAO();
List<Students> studentsList = new ArrayList<Students>();
studentsList = studentDAO.getAllStudents();
for (Students students : studentsList) {
System.out.println(students.toString());
}
} }
Mybatis学习笔记之一——牛刀小试的更多相关文章
- 【MyBatis学习笔记】
[MyBatis学习笔记]系列之预备篇一:ant的下载与安装 [MyBatis学习笔记]系列之预备篇二:ant入门示例 [MyBatis学习笔记]系列之一:MyBatis入门示例 [MyBatis学习 ...
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- MyBatis:学习笔记(3)——关联查询
MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)
文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...
- mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)
下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...
- mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现
项目结构 基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...
- Mybatis学习笔记二
本篇内容,紧接上一篇内容Mybatis学习笔记一 输入映射和输出映射 传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型. 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询 ...
- Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)
一.输入映射和输出映射 1.1 parameterType(输入类型) [传递简单类型] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) 使用#{}占位符,或者${}进行sql拼接. [ ...
随机推荐
- 仿联想商城laravel实战---3、前端页面搭建(什么情况下需要路由接参数)
仿联想商城laravel实战---3.前端页面搭建(什么情况下需要路由接参数) 一.总结 一句话总结: 比如访问课程的时候,不同的课程(比如云知梦),比如访问不同的商品,比如访问不同的分类 //商品详 ...
- C#--父子页面传值、刷新(showModalDialog)
父页面: var obj = new Object(); obj.name="name"; var rtnValue=window.showModalDialog("ch ...
- 数学建模--matlab基础知识
虽然python也能做数据分析,不过参加数学建模,咱还是用专业的 1. Matlab-入门篇:Hello world! 程序员入门第一式: disp(‘hello world!’) 2. 基本运算 先 ...
- Windows cmd findstr
/********************************************************************************** * Windows cmd fi ...
- uimsbf和 bslbf的含义
bslbf代表位串,即“Bit string, left bit first ”, uimsbf代表无符号整数,即”unsinged integer, most significant bit fir ...
- L2-016 愿天下有情人都是失散多年的兄妹(25 分)
呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入 ...
- windows下,CSV文件Excel打开乱码
在windows下面,csv文件另存为UTF-8,在excel中打开中文是乱码,如果另存为utf-8 Big + BOM,Excel打开则是正常显示
- 我的日志app企划书1.0版本
因为个人的工作习惯,想要做一个app,是关于工作(生活)日志的. 目前有几个预想的功能吧. 1.按天展示自己的每日安排. 2.每到周末展示自己的周末安排. 1的需要: 是由于,每天总有那么一点两点的细 ...
- docker 容器内服务自启动
centos6/7 有区别先说6 centos6: 方式一:rc.local + 容器内的启动脚本 1.chkconfig docker on #docker开机自启动2.[root@master y ...
- Linux不停往外发包
一台Linux这两天不停往外发包,造成外部无法访问. [root@ct-nat ~]# watch ifconfig-------------查看数据包新增情况 Every 2.0s: ifconfi ...