mybatis conecta-se ao banco de dados

Introdução aos antecedentes do MyBatis

       MyBatis é uma excelente estrutura de camada de persistência que suporta consultas SQL comuns, procedimentos armazenados e mapeamento avançado. MyBatis elimina quase todas as configurações manuais de código JDBC e parâmetros e recuperação de conjuntos de resultados. MyBatis usa XML simples ou anotações para configuração e mapeamento primitivo, mapeamento de interfaces e POJOs Java (Plain Ordinary Java Objects) em registros no banco de dados.
       Cada aplicativo MyBatis usa principalmente uma instância de SqlSessionFactory. Uma instância de SqlSessionFactory pode ser obtida por meio de SqlSessionFactoryBuilder. SqlSessionFactoryBuilder pode ser obtido de um arquivo de configuração xml ou uma instância de uma classe de configuração predefinida.
       É muito simples construir uma instância de SqlSessionFactory a partir de um arquivo xml. É recomendado usar recursos de caminho de classe nesta configuração, mas você pode usar qualquer instância do Reader, incluindo instâncias criadas com caminhos de arquivo ou URLs começando com arquivo: //. MyBatis tem uma classe de utilitário ---- Resources, tem muitos métodos, você pode facilmente carregar recursos do classpath e outros locais.

Pacote jar do driver de conexão Jdbc: qual banco de dados conectar para baixar
o pacote jar exigido por mybatis por você : mybatis-3.5.2.jar

Este artigo apresenta o uso de anotações e arquivos de configuração para manipular o banco de dados

Adicionar pacote jar
Selecione o projeto e clique com o botão direito → caminho de construção → caminho de construção de configuração → bibliotecas → adicionar jars externos Adicionar o pacote jar selecionado → Apple e fechar

Estrutura do projeto
Insira a descrição da imagem aqui
mybatis-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>
		<!-- 运行环境配置 -->
	<!--default属性:指定使用哪一个运行环境  -->
	<environments default="development">
				<!--id属性:唯一标识一个运行环境  -->
		<environment id="development">
						<!-- 事务管理器配置,type="JDBC":mybatis框架默认使用jdbc事务 -->
			<transactionManager type="JDBC" />
						<!--数据源配置,type="POOLED":mybatis框架提供的连接池  -->
			<dataSource type="POOLED">
				<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /><!--不同的数据库,连接字符串是不一样的-->		                                                       
				<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=EMIS" /> <!--databaseName为数据库名-->
				<property name="username" value="root" />  <!-- 用户名-->
				<property name="password" value="123" />  <!-- 密码 -->
			</dataSource>
		</environment>
	</environments>
			
	<mappers>
		  <mapper class="annotation.Users"/> <!-- 加载注解类 -->
		  <mapper resource="xml/s.xml"/>  <!-- 加载xml文件 -->
	</mappers>
</configuration>

Classe de entidade S. Java

package entity;
public class S {
    
    
	  private String id;  //属性名要与数据库中的字段名一致
	  private String name;	    	  
	    public String getId() 
	    {
    
    
			return id;
		}
		public void setId(String id) {
    
    
			this.id = id;
		}
		public String getName() {
    
    
			return name;
		}
		public void setName(String name) {
    
    
			this.name = name;
		}			
		public String toString()
		{
    
    
			return id.trim() + name.trim();			
		}
}

Classe de usuários

package annotation;

import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import entity.S;

public interface Users {
    
    
	@Select("select * from s") //注解
	public  List<S> select();
	
	@Insert("insert into s values(#{id},#{name})")
	public int insert(S s);
	
	@Delete("delete from s where name= #{name}")  //占位符#{}相当于jdbc中的?
	public int delete(S s);
	
	@Update("update s set name = #{name} where id = #{id}")
	public int update(S s);

}

s.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="s"> <!-- 映射文件中的namespace是用于绑定Dao接口的,即面向接口编程。
当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句 -->
                         <!--返回的结果集-->
    <select id="select"  resultType="entity.S">
        SELECT * from s
    </select>
          
    <insert id="insert" >
        insert into s values(#{
    
    id},#{
    
    name})      
    </insert>
       
    <update id="update" >
           update s set name=#{
    
    name} where id=#{
    
    id}
    </update>
    
    <delete id="delete">
          delete from s where id=#{
    
    id}
    </delete>
</mapper>

testannotation.Java

import java.io.InputStream;
import java.util.List;

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 annotation.Users;
import entity.S;

public class TestAnnotation {
    
    

	public static void main(String[] args) throws Exception{
    
    
		//创建流来加载配置文件
		InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
		// mybatis的工厂类,读取配置文件内容
		SqlSessionFactory sqlFactory = new SqlSessionFactoryBuilder().build(in);		
		SqlSession ss = sqlFactory.openSession();  //创建一个sqlSession对象
		//反射 
		Users user = ss.getMapper(Users.class);
//		List<S> list = user.select();
//		System.out.println(list);
		S s = new S();
		s.setId("1111");
		s.setName("1111");
		int i = user.delete(s); 
		ss.commit();//提交事务,insert,update,delete 时必须有这条语句,否则无法更新数据
		ss.close();
		System.out.println(i+"行受影响");
	}
}

testxml.Java

// An highlighted block
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import entity.S;

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 TestXML {
    
    

	public static void main(String[] args) throws IOException {
    
    
		InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
		// mybatis的工厂类,读取配置文件内容
		SqlSessionFactory sqlFactory = new SqlSessionFactoryBuilder().build(in);
		
		SqlSession ss = sqlFactory.openSession();  //创建一个sqlSession对象
//		List<S> list = ss.selectList("s.select");
//      System.out.println(list);
		S s = new S();
		s.setId("45");
		                //namespace.id调用
		int i = ss.delete("s.delete", s);
		ss.commit(); //提交事务,insert,update,delete 时必须有这条语句,否则无法更新数据
		ss.close();
		System.out.println(i+"行受影响");	
	}
}


Como também sou um iniciante, inevitavelmente há deficiências.

Acho que você gosta

Origin blog.csdn.net/m0_46267375/article/details/105353180
Recomendado
Clasificación