1、项目结构

2、详细代码

数据库:

1、创建实体类bean

package com.itheima.domain;import java.io.Serializable;
import java.util.Date;/*** Created by Administrator on 2019/10/11.*/
public class User implements Serializable {private Integer id;private String username;private Date birthday;private String sex;private String address;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", birthday=" + birthday +", sex='" + sex + '\'' +", address='" + address + '\'' +'}';}
}

2、查找数据库中所有用户的Dao

package com.itheima.dao;import com.itheima.domain.User;import java.util.List;/*** Created by Administrator on 2019/10/11.* 用户持久层接口*/
public interface IUserDao {/*** 查询所有操作* @return*/List<User>  findAll();
}

3、配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--mybatis的主配主文件-->
<configuration>
<!--配置环境-->
<environments default="mysql"><!--配置MySQL环境变量--><environment id="mysql"><!--配置事物的类型--><transactionManager type="JDBC"></transactionManager><!--配置数据源(连接池)--><dataSource type="POOLED"><!--配置链接数据库的四个基本信息--><property name="driver" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"></property><property name="username" value="root"></property><property name="password" value="123456"></property></dataSource></environment>
</environments><!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件--><mappers><mapper resource="com/itheima/dao/IUserDao.xml"/></mappers>
</configuration>

5、dao层对用的mapper映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.itheima.dao.IUserDao"><!--查询所有--><select id="findAll" resultType="com.itheima.domain.User">SELECT * FROM user;</select>
</mapper>

6、 log4j.properties 直接导入,无需修改。 日志配置

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

7、test单元测试

package com.itheima.test;import com.itheima.dao.IUserDao;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;/*** Created by Administrator on 2019/10/12.*/
public class Mybatis {/*** 入门案例** @param args*/public static void main(String[] args) throws Exception {//   1、 读取配置文件InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//   2、创建SqlSessionFactory工厂SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSessionFactory factory =builder.build(in);
//   3、使用工厂生产SqlSession对象SqlSession session = factory.openSession();
//   4、使用SqlSession创建Dao接口的代理对象IUserDao userDao = session.getMapper(IUserDao.class);
//   5、使用代理对象执行方法List<User> users = userDao.findAll();for (User user :users){System.out.println(user);}
//   6、释放资源session.close();in.close();}
}

8、输出结果

"C:\Program Files\Java\jdk1.8.0_131\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=D:\IntelliJ IDEA 14.0.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;D:\IDEA项目\itheima_mybatis_day01_01\target\test-classes;D:\IDEA项目\itheima_mybatis_day01_01\target\classes;D:\ruanjian\meaven\apache-maven-3.6.2-bin\repository\org\mybatis\mybatis\3.4.5\mybatis-3.4.5.jar;D:\ruanjian\meaven\apache-maven-3.6.2-bin\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar;D:\ruanjian\meaven\apache-maven-3.6.2-bin\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;D:\ruanjian\meaven\apache-maven-3.6.2-bin\repository\junit\junit\4.11\junit-4.11.jar;D:\ruanjian\meaven\apache-maven-3.6.2-bin\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;D:\IntelliJ IDEA 14.0.2\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain com.itheima.test.Mybatis
2019-10-12 22:31:22,500 0      [           main] DEBUG ache.ibatis.logging.LogFactory  - Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
2019-10-12 22:31:22,636 136    [           main] DEBUG source.pooled.PooledDataSource  - PooledDataSource forcefully closed/removed all connections.
2019-10-12 22:31:22,637 137    [           main] DEBUG source.pooled.PooledDataSource  - PooledDataSource forcefully closed/removed all connections.
2019-10-12 22:31:22,637 137    [           main] DEBUG source.pooled.PooledDataSource  - PooledDataSource forcefully closed/removed all connections.
2019-10-12 22:31:22,637 137    [           main] DEBUG source.pooled.PooledDataSource  - PooledDataSource forcefully closed/removed all connections.
2019-10-12 22:31:22,744 244    [           main] DEBUG ansaction.jdbc.JdbcTransaction  - Opening JDBC Connection
2019-10-12 22:31:22,922 422    [           main] DEBUG source.pooled.PooledDataSource  - Created connection 343965883.
2019-10-12 22:31:22,922 422    [           main] DEBUG ansaction.jdbc.JdbcTransaction  - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@148080bb]
2019-10-12 22:31:22,924 424    [           main] DEBUG m.itheima.dao.IUserDao.findAll  - ==>  Preparing: SELECT * FROM user;
2019-10-12 22:31:22,963 463    [           main] DEBUG m.itheima.dao.IUserDao.findAll  - ==> Parameters:
2019-10-12 22:31:22,994 494    [           main] DEBUG m.itheima.dao.IUserDao.findAll  - <==      Total: 6
User{id=41, username='老王', birthday=Tue Feb 27 17:47:08 CST 2018, sex='男', address='北京'}
User{id=42, username='小二王', birthday=Fri Mar 02 15:09:37 CST 2018, sex='女', address='北京金燕龙'}
User{id=43, username='小二王', birthday=Sun Mar 04 11:34:34 CST 2018, sex='女', address='北京金燕龙'}
User{id=45, username='传智播客', birthday=Sun Mar 04 12:04:06 CST 2018, sex='男', address='北京金燕龙'}
User{id=46, username='老王', birthday=Wed Mar 07 17:37:26 CST 2018, sex='男', address='北京'}
User{id=48, username='小马宝莉', birthday=Thu Mar 08 11:44:00 CST 2018, sex='女', address='北京修正'}
2019-10-12 22:31:22,997 497    [           main] DEBUG ansaction.jdbc.JdbcTransaction  - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@148080bb]
2019-10-12 22:31:22,998 498    [           main] DEBUG ansaction.jdbc.JdbcTransaction  - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@148080bb]
2019-10-12 22:31:22,998 498    [           main] DEBUG source.pooled.PooledDataSource  - Returned connection 343965883 to pool.Process finished with exit code 0

注意

该工程为Idea创建的Maven工程,目录结构与创建的纯Java工程不同,单元测试也不同,若为纯Java工程,请自行改造!

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>itheima_mybatis_day01_01</artifactId><version>1.0-SNAPSHOT</version><!-- 打包方式--><packaging>jar</packaging><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version></dependency></dependencies></project>

Mybatis入门 使用XML相关推荐

  1. mybatis入门之XML配置 idea版(含目录结构与sql语句)

    mybatis入门之XML配置 maven目录结构 1.创建一个maven项目 2. 配置pom文件 3.创建数据库及数据库表 4.java类和接口 4.1 User.java实体类 4.2.User ...

  2. Mybatis入门 使用注解

    使用XML方式地址为Mybatis入门 使用XML 1.目录结构 2.需要修改的地方 1.mybatis的配置文件 <?xml version="1.0" encoding= ...

  3. Mybatis入门:2(xml形式的增删改查)

    xml形式的增删改查 这里感觉没啥好讲的,照着代码自己敲一遍.认真再看看应该都懂的. Maven工程坐标 <?xml version="1.0" encoding=" ...

  4. mybatis入门配置——基于xml配置

    1.下载mybatis配置文件,以及数据库驱动文件,最好配置日志文件log4j可以方便测试查看日志: mybatis配置文件以及log4j日志配置下载链接: http://download.csdn. ...

  5. mybatis入门(二)之XML 映射配置文件

    转载自   mybatis XML 映射配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息.文档的顶层结构如下: c ...

  6. MyBatis 入门到精通(二) SQL语句映射XML文件

    MyBatis 真正强大之处就在这些映射语句,也就是它的魔力所在.对于它的强大功能,SQL 映射文件的配置却非常简单. 如果您比较SQL 映射文件配置与JDBC 代码,您很快可以发现,使用SQL 映射 ...

  7. Mybatis入门之动态sql

    Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="sel ...

  8. MyBatis1:MyBatis入门

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

  9. MyBatis(1):MyBatis入门

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

最新文章

  1. LeetCode简单题之二进制表示中质数个计算置位
  2. 分布式锁的三种实现方式_基于 redis 的分布式锁实现
  3. 1.2 String字符串和整型int的相互转换,valueOf() 、parse()和toString()
  4. 单列多行转单行单列合并oracle_oracle中多行转单行的两种方法
  5. 2021河南固高高考成绩查询,河南信阳最好的4所高中,前三所学霸如云,看看有没有你的母校?...
  6. 计算机硬盘中病毒以后怎么办,计算机中病毒,格式化整个硬盘后还有?怎么办?...
  7. html5标签属性大全_HTML/HTML5 知识点思维导图
  8. 小程序登录本地服务器,微信小程序实现用户登录模块服务器搭建
  9. win7便笺元数据损坏,最新解决办法
  10. python 折线图中文乱码_python matplotlib linux中文乱码问题
  11. 《跟李沐读论文》之对比学习
  12. java强制删文件夹_java删除文件或文件夹的方法
  13. 中国天气预报网接口及城市代码
  14. 机器学习:最小二乘支持向量机(Least Squares Support Vector Machine)
  15. 纪录片:美国中情局解密 CIA Declassified 2013
  16. 5064. 友好城市
  17. 斯蒂夫·乔布斯《你必须要找到你所爱的东西》
  18. 《系统之美》— 忒修斯悖论
  19. matlab中syms x是什么意思,matlab中怎样定义未知数,如x,syms是什么意思?
  20. Wargames学习笔记--Natas

热门文章

  1. Spring boot 启动过程
  2. Java——编译与反编译
  3. 深入理解 JVM Class文件格式(三)
  4. Codeforces Round #686 (Div. 3) F. Array Partition 二分 + 线段树
  5. CF1245F Daniel and Spring Cleaning(等会了更新)
  6. L - Who is the Champion
  7. 牛客题霸 [ 环形链表的约瑟夫问题] C++题解/答案
  8. YBTOJ:求好元素(哈希表)
  9. YbtOJ#732-斐波那契【特征方程,LCT】
  10. nssl1232-函数【数论,欧拉函数,莫比乌斯反演】