连接数据库:重点是
“jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8”,识别中文
否则后面查询会识别不了中文
<?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>
<!--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
**/
@Test
public 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 mapper
PUBLIC "-//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