06_01_mybatis问题解决

一:传入中文的值却查询不出数据,传入英文却能查询出数据

解决方式:
https://blog.csdn.net/jaky0306/article/details/119140057
问题点:
1.配置完好
jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_db?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=qwer1234

sqlMapConfig.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> <!--环境配置-->
    <!--    加载properties文件-->
    <properties resource="jdbc.properties"></properties>
<!--    <settings>-->
<!--        &lt;!&ndash; 打印查询语句 &ndash;&gt;-->
<!--        <setting name="logImpl" value="STDOUT_LOGGING" />-->
<!--    </settings>-->
    <!--    设置别名-->
    <typeAliases>
        <!--        方式一:给单个实体起别名-->
        <!--        <typeAlias type="com.lagou.domain.User" alias="user"></typeAlias>-->
        <!--        方式二:批量起别名 别名就是类名,且不区分大小写-->
        <package name="com.lagou.domain"/>
    </typeAliases>

    <environments default="mysql"> <!--使用MySQL环境-->
        <environment id="mysql"> <!--使用JDBC类型事务管理器-->
            <transactionManager type="JDBC"></transactionManager> <!--使用连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"></property>
                <!-- 可能出现中文乱码,所以在后面加上?useUnicode=true&amp;characterEncoding=utf-8  -->
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>
        </environment>
    </environments>
    <!--加载映射配置-->
    <mappers>
        <!--        <mapper resource="com/lagou/mapper/UserMapper.xml"></mapper>-->
        <!--        使用该方式:接口和映射文件同步同名-->
        <!--        <mapper class="com.lagou.mapper.UserMapper"></mapper>-->
        <!--批量加载映射-->
        <package name="com.lagou.mapper"/>
    </mappers>
</configuration>

多条件查询:传值为id为1,username为"张三"

 @Test
    public void test3() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //当前返回的 其实是基于UserMapper所产生的代理对象:底层:JDK动态代理 实际类型:proxy
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> users = mapper.findByIdAndUsername1(1, "张三");

        List<User> allResultMap = mapper.findAllResultMap();
        for (User user : users) {
            System.out.println(user);
        }

        sqlSession.close();
    }

启动后不会报错、也不会显示数据只是显示运行完成

Process finished with exit code 0

而后要进行问题查询:
1:可能是数据库中的编码设置不正确或者未进行设置
解决方式:
打开mysql 目录,编辑配置文件 my.ini 设置mysql编码如下
在这里插入图片描述
重启mysql或者重启电脑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值