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的更多相关文章

  1. MyBatis从入门到精通(1):MyBatis入门

    作为一个自学Java的自动化专业211大学本科生,在学习和实践过程中"趟了不少雷",所以有志于建立一个适合同样有热情学习Java技术的参考"排雷手册". 最近在 ...

  2. MyBatis1:MyBatis入门

    MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...

  3. mybatis入门基础(二)----原始dao的开发和mapper代理开发

    承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...

  4. MyBatis入门基础(一)

    一:对原生态JDBC问题的总结 新项目要使用mybatis作为持久层框架,由于本人之前一直使用的Hibernate,对mybatis的用法实在欠缺,最近几天计划把mybatis学习一哈,特将学习笔记记 ...

  5. MyBatis入门案例、增删改查

    一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...

  6. mybatis入门_mybatis基本原理以及入门程序

    一.传统jdbc存在的问题 1.创建数据库的连接存在大量的硬编码, 2.执行statement时存在硬编码. 3.频繁的开启和关闭数据库连接,会严重影响数据库的性能,浪费数据库的资源. 4.存在大量的 ...

  7. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

  8. MyBatis入门学习(二)

    在MyBatis入门学习(一)中我们完成了对MyBatis简要的介绍以及简单的入门小项目测试,主要完成对一个用户信息的查询.这一节我们主要来简要的介绍MyBatis框架的增删改查操作,加深对该框架的了 ...

  9. MyBatis入门学习(一)

    一.MyBatis入门简要介绍(百科) MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyB ...

随机推荐

  1. uboot 2013.01 代码简析(2)第一阶段初始化

    uboot执行"make smdk2410_config"之后就可以进行编译了,可以执行make命令进行编译, 因为整个输出太长,我仅仅列出部分最关键的输出(部分我不关心的内容直接 ...

  2. 让django完成翻译,迁移数据库模型

    声明:此Django分类下的教程是追梦人物所有,地址http://www.jianshu.com/u/f0c09f959299,本人写在此只是为了巩固复习使用 上篇我们完成了数据库模型的代码,但是还只 ...

  3. BZOJ 1207 [HNOI2004]打鼹鼠:dp【类似最长上升子序列】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1207 题意: 有一个n*n的网格,接下来一段时间内会有m只鼹鼠出现. 第i只鼹鼠会在tim ...

  4. html5--1.14 特殊符号的使用

    html5--1.14 特殊符号的使用 学习要点: 实体的概念一个表格小实例 1.HTML 实体 在 HTML 中,某些字符是预留的. 在 HTML 中不能使用小于号(&lt)和大于号(&am ...

  5. <%!%>声明的变量和在<%%>中声明的变量的区别

    通过写一个demo,查看Jsp_Servlet源码可知: <%!%>声明的变量是类似类的成员变量,<%%>中的变量是方法中的变量. 参考博客: http://www.cnblo ...

  6. H5内容安全尺寸

    设备独立像素:iPhone5:320 * 568 >> 微信网页可视区高度:504px   iPhone6:375 * 667 >> 微信网页可视区高度:603px 设备独立像 ...

  7. linux 加载raid驱动

    Driver Disk Installation Guide for ARC-11XX/ARC12XX/ARC16XX/18XX RAID Controller on RHEL 5.11 or Cen ...

  8. Java与国际化

    i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是"国际化"的简称. Java使用java.util.ResourceBu ...

  9. kettle及数据库导数_20160920

    一.kettle是什么. Kettle是一款国外开源的ETL( Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract).转换(transform).加载 ...

  10. MySQL记录_20160919

    1.首先先看下什么是MySQL. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,其开放源码这一特点 ...