接着上面创建的maven项目来。

1.java目录下创建cn.happy.entity包

2.idea下创建数据库连接

配置连接参数

3.把数据库表变成实体类

导入成功,改一下包名就可以用了

4.新建cn.happy.dao包,在下面新建IUserDAO接口,代码如下

 package cn.happy.dao;

 import cn.happy.entity.Smbms_user;

 import java.util.List;

 public interface IUserDAO {
List<Smbms_user> findAll();
}

5.在IUserDAO同包下新建IUserDAO.xml文件(俗称小配置),文件名一定要相同(这样做可以规避后面的一些问题)。

官方文档中找到

2.1.4 Exploring Mapped SQL Statements

把下面的文档直接粘贴到IUserDAO.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="org.mybatis.example.BlogMapper">
<select id="selectBlog" parameterType="int" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>

修改包名和<mapper>节点,比如我的代码修改如下即可

 <?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="cn.happy.dao.IUserDAO">
<!--大配置中settings autoMappingBehavior NONE,所以数据库只会装配以下column-->
<resultMap id="UserMapper" type="cn.happy.entity.Smbms_user">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="userpassword" column="userpassword"/>
</resultMap>
<!--id要与接口中的方法名相同-->
<select id="findAll" resultMap="UserMapper">
select * from smbms_user
</select>
</mapper>

6.配置resources

这里需要配置三个文件

1.jdbc.properties

2.log4j.properties

3.mybatis-config.xml

jdbc.properties

 jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///t14_smbms?characterEncoding=utf8&useSSL=true
jdbc.username=root
jdbc.password=root

log4j.properties

 log4j.rootLogger=debug,stdout,file
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{}:%L - %m%n ### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c:\\logs\\log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{}:%L - %m%n ### set log levels - for more verbose logging change 'info' to 'debug' ### log4j.logger.cn.happy.dao=debug, stdout,file

mybatis-config.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>
<!--引入 jdbc.properties-->
<properties resource="jdbc.properties"/>
<settings>
<setting name="logImpl" value="LOG4J"/>
<setting name="autoMappingBehavior" value="NONE"/>
</settings>
<!--别名,这里不使用别名,一律使用全限定名-->
<!--<typeAliases>
<package name="cn.happy.entity"/>
</typeAliases>-->
<!--DB connection info,配置mybatis多套运行环境-->
<environments default="development">
<environment id="development">
<!--采用jdbc事务管理-->
<transactionManager type="JDBC"/>
<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>
</environments>
<!--大配置关联小配置-->
<mappers>
<!--关联单个小配置,不能重复关联-->
<mapper resource="cn/happy/dao/IUserDAO.xml"/>
<!--关联整个包,dao层接口名字和对应的xml名字要一样-->
<!--<package name="cn.happy.dao"/>-->
</mappers>
</configuration>

7.编写MyBatisUtil类

 package cn.happy.util;

 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; public class MyBatisUtil {
private static InputStream is;
private static SqlSessionFactory sqlSessionFactory;
static {
try {
is=Resources.getResourceAsStream("mybatis-config.xml");
} catch (IOException e) {
e.printStackTrace();
}
sqlSessionFactory= new SqlSessionFactoryBuilder().build(is);
}
private MyBatisUtil(){}
public static SqlSession getSession(){
return sqlSessionFactory.openSession();
}
}

8.创建测试类

代码:

 package cn.happy.test;

 import cn.happy.dao.IUserDAO;
import cn.happy.entity.Smbms_user;
import cn.happy.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test; import java.util.List; public class Test20170916 {
@Test
public void findAll(){
SqlSession session = MyBatisUtil.getSession();
IUserDAO mapper = session.getMapper(IUserDAO.class);
List<Smbms_user> users = mapper.findAll();
for (Smbms_user user:users
) {
System.out.println(user.getId()+"\t"+user.getUsername()+"\t"+user.getUserpassword());
}
}
}

运行结果:

最新文章

  1. JS中如何输出空格
  2. 阿里云分布式关系数据库DRDS笔记
  3. ARM学习篇 中断定时理解
  4. C# 事件编程在游戏开发的应用
  5. java操作office和pdf文件页面列表导出cvs,excel、pdf报表.
  6. ListView防止滑动变色的小技巧
  7. Devexpress DateEdit选年月 z
  8. [C# 网络编程系列]专题五:TCP编程
  9. Constant is not finite! That&#39;s illegal. constant:inf&#39;
  10. Android 5.0五大安全特性
  11. 自己找到的一些比较实用比较好看的前端特效。很多是前面提供的jquery网站的
  12. [HMLY]6.iOS Xcode全面剖析
  13. 介绍Python程序员常用的IDE和其它开发工具
  14. 面向对象15.3String类-常见功能-判断
  15. 【ASP.NET MVC 学习笔记】- 03 Razor语法
  16. 协议系列之TCP/IP协议
  17. buaaoo_second_improvement
  18. Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧
  19. nginx入门教程
  20. Android view显示在软键盘上方

热门文章

  1. cookie登录功能实现
  2. WPF XAML中 Storyboard.TargetProperty设置TransformGroup指定的变换&quot;RenderTransform.Children
  3. poj 1125 Stockbroker Grapevine(多源最短)
  4. Windows 编译libcurl(openssl+zlib)(使用VC编译)
  5. WPF 透明掩码 OpactiyMask
  6. Debian7离线升级bash漏洞—然后修复方法
  7. Java Class SecurityManager
  8. ADB 基础命令使用
  9. Python Pandas 分析郁达夫《故都的秋》
  10. mfc动态显示图片