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. HTML语义化理解

    对所要表达的事物或者思想使用正确的标签. 例如:标题用<h > 来表示. 在<table>中加入summary的简介.   在<a>中加入title 在<im ...

  2. Contiki学习资料

    一.官方网站 官网主页:http://contiki-os.org/ 资源和支持:http://contiki-os.org/support.html The Contiki Community: h ...

  3. 0-mybatis目录

    mybatis 第一天: 对原生态jdbc程序(单独使用jdbc开发)问题总结 框架原理 入门程序 用户的增.删.改.查 开发dao两种方法: 原始dao开发方法(程序需要编写dao接口和dao实现类 ...

  4. Maven项目中使用JUnit进行单元测试

    1.打开maven项目中的pom.xml,添加JUnit 的jar包 2.在src/test/java下右键新建JUnit Test Cast

  5. Git_学习_04_ 多人协作开发的过程

    多人协作的工作模式通常是这样: 1.首先,可以试图用 git push origin branch-name 推送自己的修改: 2.如果推送失败,则因为远程分支比你的本地更新,需要先用 git pul ...

  6. C/C++协程的实现方式总结

    1.利用 C 语言的 setjmp 和 longjmp,函数中使用 static local 的变量来保存协程内部的数据. 函数原型:int setjmp(jmp_buf envbuf); void  ...

  7. VijosP1595:学校网络(有向图变强连通图)

    描述 一些学校的校园网连接在一个计算机网络上.学校之间存在软件支援协议.每个学校都有它应支援的学校名单(学校a支援学校b,并不表示学校b一定支援学校a).当某校获得一个新软件时,无论是直接得到的还是从 ...

  8. 网络工具 NetCat

    http://netcat.sourceforge.net/ windows 版本 https://joncraton.org/blog/46/netcat-for-windows/ https:// ...

  9. javascript 日期月份加减

    项目中需要用到,自己写了一个.javascript日期按月加减 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xh ...

  10. winform 控件合集2

    http://www.cnblogs.com/peterzb/archive/2009/06/18/1505424.html 包含自定义绘制的ListBox, 带拖动,图片显示, 内嵌其它控件, 打印 ...