欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis学习——创建一个Mybatis工程,连接mysql

程序员文章站 2022-06-02 15:07:15
...

MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。但是代价就是需要繁琐的配置,但是这些配置都差不多,不过都很复杂,借助插件可以更方便地写配置文件,也可以配置的模板记录下来,以后用到了直接抄了。

安装mybatis

可以去mybatis的github下载页面(可能需要*)下载mybatis的jar包,还送一本说明书。也可用直接用maven下载。将下面的代码复制到maven的配置文件里面。

<dependency>  
<groupId>org.mybatis</groupId>  
<artifactId>mybatis</artifactId>  
<version>x.x.x</version> </dependency>
//目前最新版本是3.5.4(2020年2月24日)

配置mybatis

以mysql自带world数据库中city表为例
首先创建一个java工程,Mybatis学习——创建一个Mybatis工程,连接mysql
导入mybatis和mysql的jar包Mybatis学习——创建一个Mybatis工程,连接mysql

依次创建下面需要创建的文件

需要创建的文件 作用
与表相映射的类 xxx.class 仿照表的元素创建,与表映射
配置文件 config.xml 配置数据库的信息,和需要加载的配置文件
映射(map)文件 xxxMapper.xml 与sql语句相映射
测试类 xxx.class 运行sql语句

整个工程的文件结构Mybatis学习——创建一个Mybatis工程,连接mysql

在src中创建一个包,
然后在包里面创建与表映射的类City.class,先看一下city中有哪些列。
Mybatis学习——创建一个Mybatis工程,连接mysql
然后根据列来创建映射类,类中包含构造函数,元素的set和get方法,tostring方法。

import java.util.Arrays;

public class City {
  private int[] ID;
  private String name;
  private String CountryCode;
  private String District;
  private int[] Population;
  
  public City() {
	}
  
public City(int[] iD, String name, String countryCode, String district, int[] population) {
	ID = iD;
	this.name = name;
	CountryCode = countryCode;
	District = district;
	Population = population;
}
public int[] getID() {
	return ID;
}
public void setID(int[] iD) {
	ID = iD;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getCountryCode() {
	return CountryCode;
}
public void setCountryCode(String countryCode) {
	CountryCode = countryCode;
}
public String getDistrict() {
	return District;
}
public void setDistrict(String district) {
	District = district;
}
public int[] getPopulation() {
	return Population;
}
public void setPopulation(int[] population) {
	Population = population;
}

@Override
public String toString() {
	return "City [ID=" + Arrays.toString(ID) + ", name=" + name + ", CountryCode=" + CountryCode + ", District="
			+ District + ", Population=" + Arrays.toString(Population) + "]";
}
}

再创建一个映射文件CityMapper.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="mybatis.City"><!-- 命名空间改成自己的映射类 -->


	<select id="queryCityByName" resultType="mybatis.City" parameterType="String"> <!-- resultType必须用全类名 -->
	
	select * from city where name= #{name}  
	
	</select>
	
	
</mapper>

在包外面创建配置文件config.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.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://服务器地址:端口号/数据库名称" />
				<!-- mysql版本为8.0之后的应该在url后面加上?serverTimezone=GMT%2B8 -->
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="mybatis/CityMapper.xml" /><!-- 改成自己的映射文件 -->
	</mappers>
</configuration>

在包里创建Test类

package mybatis;

import java.io.IOException;
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;

public class Test {

	public static void main(String[] args)throws IOException {
		//加载配置文件
		Reader reader =Resources.getResourceAsReader("config.xml");
		SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
		//相当于JDBC中的connection
		SqlSession session =sqlSessionFactory.openSession();
		String statment ="mybatis.City.queryCityByName";//映射文件中namespace.id
		City city=session.selectOne(statment,"Kabul");
		System.out.println(city);
		session.close();
	}

}

运行之后输出结果Mybatis学习——创建一个Mybatis工程,连接mysql
一些复杂的数据类型返回为null,这个问题之后解决。

相关标签: ssm框架学习