连接数据库:重点是
“jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8”,识别中文
否则后面查询会识别不了中文
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--development:表示可以连接多个数据库,这里的名字代表一个数据库--><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://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><!--注册useri.xml;所有用来从数据库获取数据的实现接口的xml都需要在连接数据库这里注册,这些xml相当于实现类都是用来操作数据库中的数据的,sql语句都写在这些xml里面--><mapper resource="com/dao/ImpMapper.xml"/></mappers>
</configuration>
mybatis配置类
package com.rod;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 java.io.IOException;
import java.io.InputStream;/*** 功能描述:*/
public class Mybatisconfig {
private static SqlSessionFactory sqlSessionFactory;static {
String resource = "mybatis-config.xml";InputStream inputStream = null;try {
inputStream = Resources.getResourceAsStream(resource);} catch (IOException e) {
e.printStackTrace();}sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}public static SqlSession getSqlSession() {
SqlSession session = sqlSessionFactory.openSession();return session;}}
测试类
public class MybatisTest {
/*** 功能描述: 查询数据* @param* @retuern void**/@Testpublic void test() {
SqlSession session = Mybatisconfig.getSqlSession();ImpMapper mapper = session.getMapper(ImpMapper.class);Map<String, Object> map = new HashMap<>();map.put("idname","德");List<Mybatis> selectlist = mapper.selectlist(map);for (Object o : selectlist) {
System.out.println(o);}session.close();}
接口和实现xml
public interface ImpMapper {
/*** 功能描述: 查询:* @return java.util.List<com.mysqlclass.Mybatis> 查询结果返回一个list集合*/List<Mybatis> selectlist(Map<String,Object> map);
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace是需要绑定到对应的接口 本来应该是实现接口的类中写sql语句,获取数据库中的数据的 现在使用xml文件了.所以要给个名字,相当于implements 接口 只不过变成了namespace="接口全路径" -->
<mapper namespace="com.dao.ImpMapper"><!--这里是id就是调用接口的方法,实现类实现接口还行要重写方法的,这里用id表示方法resulttype:就是返回类型,方法中select了数据库的所有数据,要再在控制台输出,就需要有一个对应着数据库的类,去接受这些查询到的数据,所以result就是要接受数据库数据的类的全路径concat连接,这里不能直接写%#{value}%,字符识别不好,需要用concat连接一下也可以使用"%"#{value}"%"--这里是"",不能用''--><select id="selectlist" resultType="com.mysqlclass.Mybatis">select * from mybatis_1 where idname like concat('%',#{idname},'%')</select>
数据库数据
1,罗德sdf,1
2,罗什,2
5,rod,777
7,gggggg,
6,f,
4,d,4
3,c,3