开发者社区> 前端歌谣> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mybatis学习(9):mybatis连接mysql数据库

简介: mybatis学习(9):mybatis连接mysql数据库
+关注继续查看

首先本地安装一个mysql数据库

修改账号密码 我的是root   123

并用navicate测试连接

数据库为mybatis 表名为users

image.png

我们看一下目录结构

image.png

直接上代码

user类
package com.edu.hpu.domain;
  
 /**
  * @author Administrator
  *user表所对应的实体类
  */
 public class User {
       //实体类的属性和表的字段名称一一对应
       private int id;
       private String name;
       private int age;
      //对属性进行封装      
     public int getId() {
         return id;
     }
     public void setId(int id) {
         this.id = id;
     }
     public String getName() {
         return name;
     }
     public void setName(String name) {
         this.name = name;
     }
     public int getAge() {
         return age;
     }
     public void setAge(int age) {
         this.age = age;
     }
       //添加toString方法
       @Override
     public String toString() {
         return "User [id=" + id + ",name=" + name + ",age=" + age + "]";
     }
 }
 userMapper.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
 例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
  -->
 <mapper namespace="com.edu.hpu.mapping.userMapper">
     <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
     使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
     resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回
     User类就是users表所对应的实体类
     -->
     <!-- 
         根据id查询得到一个user对象
      -->
     <select id="getUser" parameterType="int" 
         resultType="com.edu.hpu.domain.User">
         select * from users where id=#{id}
     </select>
 </mapper>
 test类package com.edu.hpu.test;
  
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
  
 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 com.edu.hpu.domain.User;
  
 public class Test {
  
     public static void main(String[] args) throws IOException {
         //mybatis的配置文件
         String resource = "conf.xml";
         //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
         InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
         //构建sqlSession的工厂
         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
         //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
         //Reader reader = Resources.getResourceAsReader(resource); 
         //构建sqlSession的工厂
         //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
         //创建能执行映射文件中sql的sqlSession
         SqlSession session = sessionFactory.openSession();
         /**
          * 映射sql的标识字符串,
          * com.edu.hpu.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
          * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
          */
         String statement = "com.edu.hpu.mapping.userMapper.getUser";//映射sql的标识字符串
         //执行查询返回一个唯一user对象的sql
         for(int i = 1;;i++){
         User user = session.selectOne(statement, i);
         if(user == null){
             break;
         }
         System.out.println(user);
         }
     }
 }
 conf.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>
     <environments default="development">
         <environment id="development">
             <transactionManager type="JDBC" />
             <!-- 配置数据库连接信息 -->
             <dataSource type="POOLED">
                 <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8" />
                 <property name="username" value="root" />
                 <property name="password" value="123" />
             </dataSource>
         </environment>
     </environments>
       <mappers>
         <!-- 注册userMapper.xml文件, 
          userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml-->
          <mapper resource="com/edu/hpu/mapping/userMapper.xml"/>
      </mappers>
 </configuration>

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
多实例mysql的安装和管理
多实例mysql的安装和管理 http://blog.chinaunix.net/uid-20639775-id-3438560.html mysql的多实例有两种方式可以实现,两种方式各有利弊。第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便。
736 0
MySQL 5.6.21下载安装之安装篇(二)
  mysql安装   1.1 Linux之下MySQL安装的三种方案的比较 具体内容参考这篇blog: http://blog.
1123 0
linux上mysql安装与卸载
以下步骤运行环境是centos6.5   1、查找以前是否装有mysql命令:rpm -qa|grep -i mysql2、删除mysql删除命令:rpm -e --nodeps 包名3、删除老版本mysql的开发头文件和库命令:rm -rf /usr/lib/mysql4.
909 0
openwrt挂载U盘和安装python和mysql
最近在openwrt上安装python时,老出现/overlay空间不足的错误,如下图所示: 不过用命令查看时,其空间确实挺小的: 看了这篇文章之后,想到了用闪存卡来扩容。由于我的系统内部已经有了相关usb驱动模块,所以一插上闪存卡就能识别了 基本想法很简单,先格式化,再挂载,再配置opkg.conf使软件安装到其上。 格式化 挂载到/mnt/usb目录
3294 0
mysql:yum安装以及开启远程连接权限
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/41343939 前言:如果你的mysql服务需要安装在centos上,centos一般情况下都可以通过yum命令进行软件的安装。
747 0
Ubuntu安装MySQL
原文: Ubuntu安装MySQL 一、验证原有主机是否已安装MySQL:     这里主要是运行sudo netstat -tap | grep mysql命令查看是否有MySQL监听的端口: $ netstat -tap | grep my...
2608 0
win2003下全自动快速安装php+mysql套件
导读:Windows 2003下一键快速安装PHP和MySql的安装包 场景:wind2003 32位 php5.2 1、下载php+mysql套件  地址1 http://pan.baidu.com/s/1gd7rCqR 地址2 http://www.
1061 0
MySQL自动化安装脚本
注:因官方MySQL下载较慢,请先自行上传mysql安装包至/usr/local/src目录 #!/bin/bash #This shell script can be used to install mysql instances automatically #Written by LiHui #Version 1.
811 0
+关注
前端歌谣
csdn账号前端大歌谣/前端小歌谣 微信公众号关注前端小歌谣
2486
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载