mybatis连接数据库详细案例

1.mysql创建一个数据表

		数据库下载安装不在这里叙述,需要可以参考[数据安装](https://www.runoob.com/mysql/mysql-install.html)。打开管理工具,创建数据库连接,新建数据库,数据库名为text01,在text01数据库下面创建一个数据表,名为Persons,创建数据表代码为
CREATE TABLE Persons(
LastName VARCHAR(25) ,
Sex VARCHAR(25),
Address VARCHAR(25),
City VARCHAR(25),
Age INT
)

2.在eclipse创建一个相应的类,用来映射

创建完数据库,数据表,在开发工具eclipse中创建相应的项目为MyBatisTest,创建映射类(javabean),创建代码如下`## 标题

package cn.rixati.mapper;

public class PersonMapper {
	private String LastName;
	private String Sex;
	private String Address;
	private String City;
	private int Age;
	public String getLastName() {
		return LastName;
	}
	public void setLastName(String lastName) {
		LastName = lastName;
	}
	public String getSex() {
		return Sex;
	}
	public void setSex(String sex) {
		Sex = sex;
	}
	public String getAddress() {
		return Address;
	}
	public void setAddress(String address) {
		Address = address;
	}
	public String getCity() {
		return City;
	}
	public void setCity(String city) {
		City = city;
	}
	public int getAge() {
		return Age;
	}
	public void setAge(int age) {
		Age = age;
	}
	@Override
	public String toString() {
		return "PersonMapper [LastName=" + LastName + ", Sex=" + Sex + ", Address=" + Address + ", City=" + City
				+ ", Age=" + Age + "]";
	}
	
}

3.导入mybatis和数据库连接用的jar

导入mybatis的jar包,可以在jar包查询地址网址进行查询,选择org.mybatis(第一个)下载到本地
查询jar包界面
选择项目,点击右键创建新的文件lib问,存放外部jar,把刚才下在的mybatis的jar包导入到lib文件下,可以直接拖入,也可以复制粘贴,如下
导入后lib可以打开,可以看到如图所示
选择jar包,点击右键,导入到Bulid Path,导入成功后可以在configer Build Path里可以查看到导入的jar包
导入build Path截图
mysql数据库连接用的jar包为mysql-connector,导入方法与mybatis包的导入方式一样。

4.配置全局变量和sql的查询语句

导入完jar包,创建全局配置文件,用来跟数据库建立连接,文件内有跟数据库连接的配置数据,在项目下创建configer文件,在configer文件下创建两个配置文件,可以点击右键,选择new–>other再选择XML文件创建,如下
在这里插入图片描述
在mybatis.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/ text01?serverTimezone=UTC"/>
        <property name="username" value="root"/>
        <property name="password" value="asd8520"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="personMapper.xml"/>
  </mappers>
</configuration>

在personMapper.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="cn.rixati.mybatis.mapper.UserMapper">
  <select id="getUserByAge" resultType="cn.rixati.mapper.PersonMapper">
    select * from persons where Age = #{age}
  </select>
</mapper>

5 .创建测试类,创建factory,sesstion对象,调用查询语句进行测试

方法1:personMapper.xml的namespace可以自行命名,id可以自行编辑, resultType是查询完,包装的类,也就是我们第二步自己创建的javabean,把这个类的全名(打开类,选择类名,点击右键,点击copy Qualifid Name可以方便的复制)写在值里,如上面的代码。
创建测试类,PersonTest,里边写入,如下代码

  String resource ="mybatis.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession openSesstion=sqlSessionFactory.openSession();
		PersonMapper person01=openSesstion.selectOne("cn.rixati.mybatis.mapper.UserMapper.getUserByAge", 18);
		System.out.println(user.toString());
		System.out.println("成功运行完");

方法二:用接口来调用,实现查询,就不需要传入查询语句的id
创建一个SelectMapper接口,定义查询方法,如下

package cn.rixati.mybatis.mapper;

import mybatisetest1.user01;

public interface UserMapper {
	public user01 getUserByAge(Integer age);
}

personMapper.xml文件里namespace指定为接口全类名,id改为接口中方法的名字来绑定接口与配置文件,测试代码如下

String resource ="mybatis.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession openSesstion=sqlSessionFactory.openSession();
		UserMapper mapper=openSesstion.getMapper(UserMapper.class);
		user01 user=mapper.getUserByAge(12);
		System.out.println(user.toString());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值