看了别的提问,还是拿不到数据库的值

看了别的提问,还是拿不到数据库的值

http://img1.sycdn.imooc.com//climg/5af09b570001129814520252.jpg

http://img1.sycdn.imooc.com//climg/5af09b570001809908800554.jpg

http://img1.sycdn.imooc.com//climg/5af09b570001e84c11500641.jpg

http://img1.sycdn.imooc.com//climg/5af09b580001454108280440.jpg

http://img1.sycdn.imooc.com//climg/5af09b580001cd5206940502.jpg

看了别的提问,能改的都试过了 就是拿不到值。 

数据库 密码用户名 都确认了  XML里也是先到home.jsp再跳转   

不知道怎么找错了  输出信息里 也没有SQL异常和报错 

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

7回答
喜欢做梦的鱼 2018-05-08 18:29:29

额,同学,你试的老师源码到底是行还是不行。。。。看你的回复都混乱了

  • 提问者 我吖吖 #1
    不行。。不行。。 界面可以运行 数据库 拿不到值。。 一样的问题 。。
    2018-05-08 18:37:20
  • 一叶知秋519 回复 提问者 我吖吖 #2
    你运行老师的源码也不可以取到数据,那么后台有报错信息吗?另外你的数据库是不是导入的老师源码中的数据库文件呢?
    2018-05-08 18:53:04
  • 提问者 我吖吖 回复 一叶知秋519 #3
    后台 刚开始 有报错 是 SQLException 让我检查UserDao 和 UserFindServlet但是 我改了几次 突然就没了 。 我导入的是老师源码中的文件的
    2018-05-08 20:16:08
提问者 我吖吖 2018-05-08 17:43:50

SessionFactoryUtils 

package com.wyh.utils;

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 SqlSessionFactoryUtils {
    private static  String RESOURCE ="mybatis-config.xml";

    private static SqlSessionFactory sqlSessionFactory;

    private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
//    创建一个初始化SqlSessionFactory的方法
   public static void initSqlSessionFactory(){
       try {
           InputStream is = Resources.getResourceAsStream(RESOURCE);
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
//   获取
   public static SqlSessionFactory getSqlSessionFactory(){

       return sqlSessionFactory;
   }
//   关闭
    public static void close(){
       SqlSession session = threadLocal.get();
       if (session != null){
           session.close();
           threadLocal.set(null);
       }
    }
}

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>
 <properties resource="db.properties"></properties>
    <environments default="development">
   <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
</environments>
    
    <mappers>
        <mapper resource="mapper/usersMapper.xml"/>
    </mappers>
</configuration>

db.properties   因为我的mysql 用户名root 密码 111111 所以做了如下更改 

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb
username=root
password=111111

index.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/5/7/007
  Time: 17:59
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>用户管理中心</title>
    <link rel="stylesheet" href="lib/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <script src="lib/2.2.4/jquery-1.12.4.min.js"></script>
    <script src="lib/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</head>
<body>
 <div class="container">
     <div class="row">
         <div class="page-header">
            <h1>后台管理系统<small>用户数据管理中心</small></h1>
         </div>
     </div>
     <div class="row">
         <div class="jumbotron">
             <h1>MyBatis基础 !</h1>
             <p>通过一个项目完成基础部分的学习</p>
             <p><a class="btn btn-primary btn-lg" href="#" role="button">查看更多</a></p>
         </div>
     </div>
     <div class="row">
         <table class="table table-hover table-striped">
             <tr>
                 <th>用户编号</th>
                 <th>登陆账号</th>
                 <th>用户昵称</th>
                 <th>邮箱</th>
                 <th>联系方式</th>
                 <th>账号创建时间</th>
                 <th>用户状态</th>
                 <th>操作</th>
             </tr>

             <c:forEach var="user" items="${userList}">
                 <tr>
                     <td>123</td>
                     <td>213</td>
                     <td>1</td>
                     <td>1</td>
                     <td>4</td>
                     <td>4</td>
                     <td>314</td>
                     <td>5r23</td>
                     <td>213</td>
                     <td>132</td>
                 </tr>

             </c:forEach>
         </table>

     </div>
 </div>
</body>
</html>

只要加了  <c:forEach var="user" items="${userList}"> 我的底下的 <td>标签里的测试数据就会消失 所以我感觉这是没有从数据库取到数据的缘故 

喜欢做梦的鱼 2018-05-08 17:22:00

从同学目前提供的内容来看暂时无法定位问题,建议同学试一下一下解决方案;

1 、加载老师的源码和数据库,运行一遍查看效果是否有误

2、如果1正常,则可初步排除“工具和环境有误”,请同学贴出完整涉及到的所有内容,包括SQL语句,实体类,数据操作方法,jsp,配置文件等,可以帮助仔细排查原因。

  • 提问者 我吖吖 #1
    我添加完了 请老师 帮我看看吧 自己找不到问题 T。T
    2018-05-08 17:44:47
  • 提问者 我吖吖 #2
    我试了老师的源代码 是没有问题的
    2018-05-08 18:03:59
  • 提问者 我吖吖 #3
    又试了一下老师的源码 发现还是同样的问题 数据库 进不去
    2018-05-08 18:22:16
没有马甲线的安琪拉 2018-05-08 15:19:02

通常来说,如果使用“select * ”来查询的 那么实体类中的属性必须和数据表中对应的字段一模一样,你最好检查一下数据表里字段名啊,数据值是否有效,并且实体类属性之类的是不是一致

  • 提问者 我吖吖 #1
    仔细对比了 一下 没有问题 。。就是取不到值 。。 很难受
    2018-05-08 16:04:53
提问者 我吖吖 2018-05-08 13:56:55
usersMapper.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属性用来配置命名空间,主要进行session级别的缓存管理
命名空间默认情况下,使用我们当前操作的实体类的全路径
-->
<mapper namespace="com.wyh.entity.Users">
<select id="findAll" resultType="com.wyh.entity.Users">
    select * FROM USERS;
</select>
</mapper>

UsersFindServlet.java
package com.wyh.utils;

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 SqlSessionFactoryUtils {
    private static  String RESOURCE ="mybatis-config.xml";

    private static SqlSessionFactory sqlSessionFactory;

    private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
//    创建一个初始化SqlSessionFactory的方法
   public static void initSqlSessionFactory(){
       try {
           InputStream is = Resources.getResourceAsStream(RESOURCE);
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
//   获取
   public static SqlSessionFactory getSqlSessionFactory(){

       return sqlSessionFactory;
   }
//   关闭
    public static void close(){
       SqlSession session = threadLocal.get();
       if (session != null){
           session.close();
           threadLocal.set(null);
       }
    }
}


提问者 我吖吖 2018-05-08 13:55:00

UsersDao.java

package com.wyh.dao;

import com.wyh.entity.Users;
import com.wyh.utils.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class UsersDao {
   private SqlSession sqlSession=SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
   private List<Users> list;


   public List<Users> findAll(){
       try {
           list =sqlSession.selectList("findAll");
       } catch (Exception e) {
           e.printStackTrace();
       }finally {
           sqlSession.close();
       }
           return list;
   }
}

好帮手慕珊 2018-05-08 11:19:11

你好!能把相关的代码都贴出来不截图吗,都贴到回答里,不贴到回复里。这样我们可以把代码运行起来看看。如果数据库和老师的一样,sql文件就不用贴了。祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师