发布于2020-11-19 20:12 阅读(830) 评论(0) 点赞(15) 收藏(3)
最近开始学习ssm框架,用mybatis实现最简单的数据查询,数据库使用mysql数据库。mysql数据库建议使用5.1.x或者5.5.x版本,可自行下载。
1.数据准备
安装mysql数据库后,建立测试表user,自行插入几条测试数据
- DROP TABLE IF EXISTS `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;
2.工程结构
pom.xml中添加如下依赖:包括mybatis,mysql,日志,单元测试
- <packaging>jar</packaging>
-
- <dependencies>
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- <version>3.5.6</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.49</version>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.12</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.10</version>
- </dependency>
- </dependencies>
log4j.properties可直接放到resources目录下,指定下本地目录
- # 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=C:\\mybatis_day01\\first\\log4j.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
User为实体类,与我们建的User表对应
- package com.tjchy.domain;
-
- import java.io.Serializable;
- import java.util.Date;
-
- 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;
- }
-
- @Override
- public String toString() {
- return "User{" +
- "id=" + id +
- ", username='" + username + '\'' +
- ", birthday=" + birthday +
- ", sex='" + sex + '\'' +
- ", address='" + address + '\'' +
- '}';
- }
IUserDao为持久层接口,如下
- package com.tjchy.dao;
- import com.tjchy.domain.User;
- import java.util.List;
-
- /**
- * 持久层接口
- */
- public interface IUserDao {
- /**
- * 查询所有用户接口
- */
- List<User> findAll();
- }
IUserDao.xml为对象关系映射文件,在resources目录下,注意需与IUserDao.java文件的目录结构相同,都为com.tjchy.dao
- <?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.tjchy.dao.IUserDao">
- <!--配置查询所有-->
- <select id="findAll" resultType="com.tjchy.domain.User">
- select * from user
- </select>
- </mapper>
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">
-
- <!--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 name="url" value="jdbc:mysql://localhost:3306/xxxx"/>
- <property name="username" value="xxxx"/>
- <property name="password" value="xxxx"/>
- </dataSource>
- </environment>
- </environments>
-
- <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
- <mappers>
- <mapper resource="com/tjchy/dao/IUserDao.xml"/>
- </mappers>
- </configuration>
建立测试类,TestMain
- package com.tjchy.test;
-
- import com.tjchy.dao.IUserDao;
- import com.tjchy.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.InputStream;
- import java.util.List;
-
- public class TestMain {
-
- public static void main(String[] args) throws Exception {
- //1.读取配置文件
- InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
- //2.创建SqlSessionFactory工厂
- SqlSessionFactoryBuilder builder;
- builder = new SqlSessionFactoryBuilder();
- SqlSessionFactory sessionFactory = builder.build(in);
- //3.使用工厂创建Sqlsession对象
- SqlSession session=sessionFactory.openSession();
- //4.使用session创建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();
-
-
- }
- }
原文链接:https://blog.csdn.net/gis_zhouda/article/details/109775724
作者:javagogogo
链接:http://www.javaheidong.com/blog/article/858/9b9adb832fe4ba747b3f/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!