框架MyBatis,持久层框架,负责简化数据库连接
项目目录结构图
准备:
数据库
create database User;
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;INSERT INTO `user`(`id`,`username`,`birthday`,`sex`,`address`) VALUES (41,'老王','2018-02-27 17:47:08','男','北京'),(42,'小二王','2018-03-02 15:09:37','女','北京金燕龙'),(43,'小二王','2018-03-04 11:34:34','女','北京金燕龙'),(45,'传智播客','2018-03-04 12:04:06','男','北京金燕龙'),(46,'老王','2018-03-07 17:37:26','男','北京'),(48,'小马宝莉','2018-03-08 11:44:00','女','北京修正');
User实体类(xml,注解)
//Alias注解用于起别名,用于userDao.xml中,可不用 @Alias("user") public class User implements Serializable { //这是属性列表 private int id; private String sex; private Date birthday1; private String username1; private String address; private List ii; }
UserDao接口(xml,注解)
注解开发 和 xml文件实现 选其一即可(注解 和xml二选一)
- 注解
public interface UserDao { @Select("select * from user") List<User> findAll(); @Insert("insert into user(username,birthday,sex) values (#{username},#{birthday},#{sex})") void save(); //顺便提一句:进行映射是直接使用实体类属性名(虽然是private),无需getter/setter都可以,但需要一个空构造方法(不重载构造方法就可使用默认方法) }
- xml xml文件就无需实现@Select注解,但要多创建一个Mapper.xml文件进行映射
public interface UserDao { List<User> findAll(); void save(User u); }
resources. mybatis.xml(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> <!-- 非必需 起别名 @type 要起名对象 @alias 要起的名字,且这个名字是忽略大小写 @package 代替一个个的typeAlias,name的domain包下面的类全部起别名&#x