看了别的提问,还是拿不到数据库的值
看了别的提问,能改的都试过了 就是拿不到值。
数据库 密码用户名 都确认了 XML里也是先到home.jsp再跳转
不知道怎么找错了 输出信息里 也没有SQL异常和报错
正在回答 回答被采纳积分+1
SessionFactoryUtils
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?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 所以做了如下更改
1 2 3 4 | driver=com.mysql.jdbc.Driver url=jdbc:mysql: //localhost:3306/mydb username=root password= 111111 |
index.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | <%-- 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>标签里的测试数据就会消失 所以我感觉这是没有从数据库取到数据的缘故
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 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 ); } } } |
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;
}
}
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧