黑马MyBatis入门day1
package com.itheima.domain; /*
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`birthday` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
*/
public class User {
private int id;
private String username;
private String password;
private Long birthday; public User() {
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public Long getBirthday() {
return birthday;
} public void setBirthday(Long birthday) {
this.birthday = birthday;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", birthday=" + birthday +
'}';
}
}
User
<?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="com.itheima.mapper.UserMapper">
<!--查询全部-->
<select id="findAll" resultType="User">
select * from user
</select> <!--根据id进行查询-->
<select id="findById" resultType="User" parameterType="int">
select * from user where id=#{id}
</select> <!--增-->
<insert id="add" parameterType="User">
insert into user(username, password) values(#{username}, #{password})
</insert> <!--删-->
<delete id="delete" parameterType="java.lang.Integer">
delete from user where id=#{id}
</delete> <!--改-->
<update id="update" parameterType="User">
update user set username=#{username}, password=#{password} where id=#{id}
</update>
</mapper>
UserMapper.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> <!--外部的配置文件-->
<properties resource="jdbc.properties"></properties> <!--别名-->
<typeAliases>
<!--<typeAlias type="com.itheima.domain.User" alias="User"/>-->
<package name="com.itheima.domain"/>
</typeAliases> <!--配置数据源和事务管理-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment> <environment id="test">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3307/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments> <!--映射配置-->
<mappers>
<!--<mapper resource="com.itheima.mapper.UserMapper.xml"/>-->
<mapper resource="com/itheima/mapper/UserMapper.xml"/>
</mappers> </configuration>
SqlMapConfig
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3307/test
jdbc.username=root
jdbc.password=root
jdbc.properties
package com.itheima; import com.itheima.domain.User;
import org.apache.ibatis.io.Resources;
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; public class CRUDTest { @Test
public void findAll() throws IOException {
// String config = "com/itheima/mapper/UserMapper.xml";
String config = "SqlMapConfig.xml";
InputStream resource = Resources.getResourceAsStream(config);
//根据xml配置创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resource);
//创建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行语句
List<User> userList = sqlSession.selectList("com.itheima.mapper.UserMapper.findAll");
for (User user : userList) {
System.out.println(user);
}
} @Test
public void findById() throws IOException {
//加载配置
String mybatisConfig = "SqlMapConfig.xml";
InputStream mybatisConfigStream = Resources.getResourceAsStream(mybatisConfig);
//创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(mybatisConfigStream);
//创建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//语句
User user = sqlSession.selectOne("com.itheima.mapper.UserMapper.findById", 1);
System.out.println(user);
} @Test
public void add() throws IOException {
//准备对象
User user = new User();
user.setUsername("liubei");
user.setPassword("123"); // String config = "com/itheima/mapper/UserMapper.xml";
String config = "SqlMapConfig.xml";
InputStream resource = Resources.getResourceAsStream(config);
//根据xml配置创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resource);
//创建SqlSession
// SqlSession sqlSession = sqlSessionFactory.openSession();
SqlSession sqlSession = sqlSessionFactory.openSession(false);
//执行语句
int rows = sqlSession.insert("com.itheima.mapper.UserMapper.add", user);
//提交事务
// sqlSession.commit();
System.out.println(rows);
} @Test
public void delete() throws IOException {
String config = "SqlMapConfig.xml";
InputStream resourceStream = Resources.getResourceAsStream(config);
//创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceStream);
//创建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//删除
int rows = sqlSession.delete("com.itheima.mapper.UserMapper.delete", 10);
//提交事务
sqlSession.commit();
System.out.println(rows);
} @Test
public void update() throws IOException {
//准备对象
User user = new User();
user.setId(1);
user.setUsername("root1");
user.setPassword("root"); //加载核心配置
String mybatisConfig = "SqlMapConfig.xml";
InputStream mybatisConfigStream = Resources.getResourceAsStream(mybatisConfig);
//创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(mybatisConfigStream);
//创建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//语句
int rows = sqlSession.update("com.itheima.mapper.UserMapper.update", user);
//手动提交事务
sqlSession.commit();
System.out.println(rows);
}
}
CRUDTest

黑马MyBatis入门day1的更多相关文章
- MyBatis从入门到精通(1):MyBatis入门
作为一个自学Java的自动化专业211大学本科生,在学习和实践过程中"趟了不少雷",所以有志于建立一个适合同样有热情学习Java技术的参考"排雷手册". 最近在 ...
- MyBatis1:MyBatis入门
MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...
- MyBatis入门基础(一)
一:对原生态JDBC问题的总结 新项目要使用mybatis作为持久层框架,由于本人之前一直使用的Hibernate,对mybatis的用法实在欠缺,最近几天计划把mybatis学习一哈,特将学习笔记记 ...
- MyBatis入门案例、增删改查
一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...
- mybatis入门_mybatis基本原理以及入门程序
一.传统jdbc存在的问题 1.创建数据库的连接存在大量的硬编码, 2.执行statement时存在硬编码. 3.频繁的开启和关闭数据库连接,会严重影响数据库的性能,浪费数据库的资源. 4.存在大量的 ...
- MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...
- MyBatis入门学习(二)
在MyBatis入门学习(一)中我们完成了对MyBatis简要的介绍以及简单的入门小项目测试,主要完成对一个用户信息的查询.这一节我们主要来简要的介绍MyBatis框架的增删改查操作,加深对该框架的了 ...
- MyBatis入门学习(一)
一.MyBatis入门简要介绍(百科) MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyB ...
随机推荐
- 获取HDC的几种方法
当需要在显示器上(当然包括打印机等设备上)绘图时,或者写文字的时候,需要取得设备的上下文句柄,即HDC,本文以下都称为HDC.那么,有哪些办法取得HDC呢? 1 BeginPain()和EndPain ...
- debian支持的系统架构介绍
debian系统支持类型有armel.armhf.i386.amd64.mips.mipsel, powerpc.sparc.s390.s390x等. 详细对比文章见https://www.debia ...
- linux内核中创建线程方法【转】
本文转载自:https://www.cnblogs.com/Ph-one/p/6077787.html 1.头文件 #include <linux/sched.h> //wake_up_p ...
- c语言字符串 数字转换函数大全
最近学数据结构老是做实验 常用到字符串和数字的转换 想找却发现网上的资料太散 所以搜集整理一下 方便以后再用 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转 ...
- 用python 实现录入学生作业情况的小程序
写一个录入学生作业情况的一个程序 1.查看学生作业情况 2.录入学生作业情况 3.可以让输入3次,需要为空的情况 homeworks = { ‘张流量’: {‘2018.3.22’:”未交”,’201 ...
- tensorflow实现svm多分类 iris 3分类——本质上在使用梯度下降法求解线性回归(loss是定制的而已)
# Multi-class (Nonlinear) SVM Example # # This function wll illustrate how to # implement the gaussi ...
- 《java编程思想》:异常丢失
finally子句的不恰当使用,会造成异常的丢失,此处列举两种典型的错误使用示例.编程中要避免这种情况 示例一: try{ throw new ExceptionA(); }finally{ thro ...
- android自定义控件(一) 官方文档的翻译
构建自定义组件 Android中,你的应用程序程序与View类组件有着一种固定的联系,例如按钮(Button).文本框(TextView),可编辑文本框(EditText),列表框(ListView) ...
- django 模板中通过变量替代key取字典内容
模板中通过变量替代key取字典内容 templatetags/├── get_item.py├── __init__.py ###get_item.py # coding=utf-8 from dja ...
- NCEE2018游记
前言 悠闲的高中生活结束啦.俺たちの戦いはこれからだ!(无误) Day0 看考场 听考前教育,前面还挺常规,后面讲了半个多小时相关法律,听了几句后实在没兴趣了,开始瞎想.那个人连续读了近一个小时也不嫌 ...