运用mybatis框架进行数据库的查询操作(Mybatis是一款操作数据库的持久层框架,同时也是一款半自动化的ORM框架。)

1.新建一个java工程(dt45_mybatis2); 然后在项目下面建立一个lib文件用来放jar包(包括两个jar包:mybatis-3.4.4.jar和mysql-connector-java-5.1.43.jar),然后右键Build Path; 然后建立一个source folder(-resource)。
2、在source里面建立mybatis.xml(alt+"/“快速生成)。 然后在mybatis.xml中改数据库名和局部配置文件路径(这里要先建立局部配置文件才能够修改,后来为/dt45_mybatis2/src/cn/java/dao/impl/CpDaoImpl.xml)。
3、然后在src里面建立cn.java.dao.impl的package包(再建立CpDaoImpl.java和CpDaoImpl.xml的局部配置文件)、cn.java.entity(Cp.java—这个是因为一条记录既可以用map来装也可以用javabean来装,所以定义了这样的一个javabean用来装一条记录;;多条记录的时候用LIst来装)。
运用mybatis框架进行数据库的查询操作(Mybatis是一款操作数据库的持久层框架,同时也是一款半自动化的ORM框架。)_第1张图片
第一步:写mybatis.xml——主配置文件(alt+”/")
第二步:写CpDaoImpl.xml——局部配置文件(alt+"/")——里面的select id和resultType需要等到dao层的java类写完才可以补充
第三部:写CpDaoImpl.java——查询所有菜品信息,步骤是:
(SqlSession–>SqlSessionFactory–>SqlSessionFactoryBuilder)
(1、得到SqlSessionFactoryBuilder对象 2、将mybatis.xml变成inputStream流 3.得到SqlSession 4、调用局部配置文件中的sql语句 //namespace+"."+id)

下面代码是: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>
	<!-- 配置数据库连接环境:driver、url、username、password -->
	<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:///dt55"/>
				<property name="username" value="root"/>
				<property name="password" value="root"/>
			</dataSource>
		</environment>
	</environments>
	
	<!-- 关联局部配置文件 -->
	<mappers>
		<mapper resource="cn/java/dao/impl/CpDaoImpl.xml"/>
	</mappers>
</configuration>

下面代码是Cp.java

package cn.java.entity;

import java.io.Serializable;

public class Cp implements Serializable{
	/**
	 * 这里按住Ctrl点一下小灯,点第二行,就可以得到下面的唯一的id,序列化
	 */
	private Long id;
    private String foodName;
    private String taste;
    private Float price;
    private String description;
    private String imgPath;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getFoodName() {
		return foodName;
	}
	public void setFoodName(String foodName) {
		this.foodName = foodName;
	}
	public String getTaste() {
		return taste;
	}
	public void setTaste(String taste) {
		this.taste = taste;
	}
	public Float getPrice() {
		return price;
	}
	public void setPrice(Float price) {
		this.price = price;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public String getImgPath() {
		return imgPath;
	}
	public void setImgPath(String imgPath) {
		this.imgPath = imgPath;
	}
	@Override
	public String toString() {
		return "Caipin [id=" + id + ", foodName=" + foodName + ", taste=" + taste + ", price=" + price
				+ ", description=" + description + ", imgPath=" + imgPath + "]";
	}
}

下面代码是:CpDaoImpl.java

package cn.java.dao.impl;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.reflection.wrapper.BaseWrapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import cn.java.entity.Cp;

public class CpDaoImpl {
     /*查询菜品信息*/
	@Test
	public void getCpById()throws Exception{
		SqlSessionFactoryBuilder  ssfb=new SqlSessionFactoryBuilder();
		InputStream ins =Resources.getResourceAsStream("mybatis.xml");
	    SqlSessionFactory factory=ssfb.build(ins);
	    SqlSession session=factory.openSession();
	  //调用相应的sql语句
	    Cp cp=session.selectOne("cn.java.dao.impl.CpDaoImpl.getCpById");
	    System.out.println(cp);
	}
}

下面代码是:CpDaoImpl.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">
<!-- 
	namespace:命名空间,其值为某一个dao层类的具体路径
 -->
<mapper namespace="cn.java.dao.impl.CpDaoImpl">
	<!-- sql语句保存在Mybatis的局部配置文件中 -->
	<!-- 
		select标签存放查询语句(List<User>)
			id:在整个配置文件中id值必须唯一,其值与dao层类中的方法名保持一致
			resultType:指定当前sql查询语句返回的数据类型。类型不是为sql语句的最终类型,而是某一条数据的类型
	 -->
	<select id="getCpById" resultType="cn.java.entity.Cp">
		SELECT * FROM caipin WHERE id=23
	</select>
</mapper>

运用mybatis框架进行数据库的查询操作(Mybatis是一款操作数据库的持久层框架,同时也是一款半自动化的ORM框架。)_第2张图片
运用mybatis框架进行数据库的查询操作(Mybatis是一款操作数据库的持久层框架,同时也是一款半自动化的ORM框架。)_第3张图片
运用mybatis框架进行数据库的查询操作(Mybatis是一款操作数据库的持久层框架,同时也是一款半自动化的ORM框架。)_第4张图片
运用mybatis框架进行数据库的查询操作(Mybatis是一款操作数据库的持久层框架,同时也是一款半自动化的ORM框架。)_第5张图片
运用mybatis框架进行数据库的查询操作(Mybatis是一款操作数据库的持久层框架,同时也是一款半自动化的ORM框架。)_第6张图片

你可能感兴趣的:(java)