Mybatis框架学习笔记一
2020-04-13 16:03:18来源:博客园 阅读 ()
Mybatis框架学习笔记一
Mybatis框架学习笔记一
基础mybatis注解配置
?
1.
编写jdbcConfig.properties配置文件jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名
jdbc.username=用户名
jdbc.password=密码
2.
项目是基于maven创建的所以需要先导入依赖<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.26</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
3.
编写实体类,与数据库中的表对应(变量名与数据库表相对应)public class User implements Serializable {//实现序列化接口,便于数据封装
private Integer id;
private String username;
private String address;
private String sex;
private Date birthday;
//下面是get,set方式
...
}
注意:最好自动生成不然容易写错
4.
编写持久层接口public interface IUserDao {
/**
* 在mybatis中针对CRUD一个有四个注解
* @Select @Inset @Update @Delete
*/
@Select("select * from user")
/*
但实体类与数据库表相对应是,Mybatis框架会自动帮我们完成数据封装;
如果实体类与与数据库表不对应,则需要通过下列注解建立数据库表与实体类的对应关系
id = true,表示此属性是主键,其它Result注解不用写,property 是实体类的属性名,column是数据库表的键名
@Results({
@Result(id = true, property = "id", column = "id"),
@Result(property = "username", column = "username"),
@Result(property = "email", column = "email"),
@Result(property = "password", column = "password"),
@Result(property = "sex", column = "sex"),
@Result(property = "birthday", column = "birthday")
})
*/
List<User> findAll();
}
5.
编写SqlMapConfig.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="jdbcConfig.properties"></properties>
<!--配置别名-->
<typeAliases>
<package name="com.mybatis_learn.domain"></package>
</typeAliases>
<!--配置Mybatis环境-->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源-->
<!--
UNPOOLED 不使用连接池的数据源
POOLED 使用连接池的数据源
JNDI 使用 JNDI 实现的数据源
-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</dataSource>
</environment>
</environments>
<!--指定带有注解的dao接口所在的位置-->
<mappers>
<package name="com.mybatis_learn.dao"></package>
</mappers>
</configuration>
6.
编写测试类public class MybatisAnnoTest {
/**
* 测试基于注解的mybatis的使用
* @param args
*/
public static void main(String[] args) throws IOException {
//1.获取字节输入流
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.根据字节输入流构建SqlSessionFactory
SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(is);
//3.根据SqlSessionFactory生产SqlSession
SqlSession session = factory.openSession();
//4.使用SqlSession获取Dao的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
//5.执行Dao的方法
List<User> users = userDao.findAll();
for(User user : users){
System.out.println(user);
}
//6.释放资源
session.close();
is.close();
}
}
目录结构
运行测试代码,成功从数据库中查出数据。
如有错漏,欢迎指正。
最后附上数据库建表命令
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(32) NOT NULL COMMENT '用户名称',
`birthday` datetime default NULL COMMENT '生日',
`sex` char(1) default NULL COMMENT '性别',
`address` varchar(256) default NULL COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
原文链接:https://www.cnblogs.com/lazy-brain/p/12693928.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java--反射(框架设计的灵魂)案例 2020-06-11
- MyBatis中的$和#,用不好,准备走人! 2020-06-11
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- Java--反射(框架设计的灵魂) 2020-06-11
- java学习之第一天 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash