resultset

Java Web----Java Web的数据库操作(三)

蓝咒 提交于 2020-01-09 18:35:59
Java Web的数据库操作 前面介绍了JDBC技术和JDBC API及API的使用示例,下面详细介绍JDBC在Web中的应用。 Java Web----Java Web 的数据库操作(一 ) Java Web----Java Web 的数据库操作( 二) 四、JDBC在Java Web中的应用 通常情况下,Web程序操作数据库都是通过JDBC实现,即使目前数据库方面的开源框架有许多,但其底层实现都离不开JDBC API。 1、开发模式 在Java Web开发中使用JDBC,应遵循MVC的设计思想,从而使Web程序拥有一定的健壮性、可扩展性。每个Java Web程序员都应该深谙MVC的设计思想,下面对其简单介绍。 MVC(Model-View-Controller)是一种设计理念,该理念将软件分成3层结构,分别为模型层、视图层和控制层。 模型层泛指程序中的业务逻辑,用于处理真正的业务操作; 视图层是指程序与用户交互的界面,对用户呈现出视图,但不包括业务逻辑; 控制层是对用户各种请求的分发处理,将制定的请求分配给制定的业务逻辑进行处理。 JDBC应用于Java Web开发中,处于MVC中的模型层位置,如图所示: 客户端通过JSP页面与程序进行交互,对于数据的增、删、改、查请求由Servlet对其进行分发处理,如Servlet接收到添加数据请求,就会分发给增加数据的JavaBean对象

Mybatis(1)-初识mybaits

こ雲淡風輕ζ 提交于 2020-01-07 19:16:12
一、概述 1、概述     mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。   mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并 返回。   采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我 们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。 2、 JDBC编程  (1)步骤    1> 加载数据库驱动    2> 创建并获取数据库链接   3> 创建jdbc statement对象    4 > 设置sql语句    5> 设置sql语句中的参数(使用preparedStatement)   6>通过statement执行sql并获取结果    7>对sql执行结果进行解析处理   8>释放资源(resultSet、preparedstatement、connection) 1 package com.xhbjava; 2

ResultSet移动

自古美人都是妖i 提交于 2020-01-07 17:37:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ResultSet 功能1: 获取查询结果中的数据: getXxxx – 可以使用 遍历结果集 - 默认只有next可用 因为默认游标是仅向前的 常量: 1:让RS成为可以前后移动的 @Test public void test() throws Exception { // 在创建St对象时,可以指定查询的rs是否可以滚动 Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs = st.executeQuery("select * from person"); // 直接移动到行尾 rs.afterLast(); // 前移动 while (rs.previous()) { String name = rs.getString("name"); System.err.println(name); } System.err.println("-----此时游标的位置是:行首--------"); while (rs.next()) { String name = rs.getString("name"); System.err.println

Mybatis是如何实现SQL防注入的

核能气质少年 提交于 2020-01-07 04:48:16
Mybatis这个框架在日常开发中用的很多,比如面试中经常有一个问题: $ 和 # 的区别,它们的区别是使用 # 可以防止SQL注入,今天就来看一下它是如何实现SQL注入的。 什么是SQL注入 在讨论怎么实现之前,首先了解一下什么是SQL注入,我们有一个简单的查询操作:根据id查询一个用户信息。它的sql语句应该是这样: select * from user where id = 。我们根据传入条件填入id进行查询。 如果正常操作,传入一个正常的id,比如说2,那么这条语句变成 select * from user where id =2 。这条语句是可以正常运行并且符合我们预期的。 但是如果传入的参数变成 '' or 1=1 ,这时这条语句变成 select * from user where id = '' or 1=1 。让我们想一下这条语句的执行结果会是怎么?它会将我们用户表中所有的数据查询出来,显然这是一个大的错误。这就是SQL注入。 Mybatis如何防止SQL注入 在开头讲过,可以使用 # 来防止SQL注入,它的写法如下: <select id="safeSelect" resultMap="testUser"> SELECT * FROM user where id = #{id} </select> 在mybatis中查询还有一个写法是使用 $ ,它的写法如下:

I get the Jtable but no data [duplicate]

狂风中的少年 提交于 2020-01-07 02:36:12
问题 This question already has an answer here : Closed 7 years ago . Possible Duplicate: I can’t get my JTable to show anything I can show my Table but I can't get any data in the table, just the column name. My code looks like this. public static DefaultTableModel buildTableModel(ResultSet rs) throws SQLException { java.sql.ResultSetMetaData metaData = rs.getMetaData(); // names of columns Vector<String> columnNames = new Vector<String>(); int columnCount = metaData.getColumnCount(); for (int

期末测试javaweb,考勤系统后台

好久不见. 提交于 2020-01-06 21:59:00
package com.hjf.dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.hjf.entity.Course; import com.hjf.util.DBUtil; /** * 课程Dao * Dao层操作数据 * @author Hu * */ public class CourseDao { /** * 添加 * @param course * @return */ public static boolean add(Course course) { String sql = "insert into bumeng(departmentid,department) values('" + course.getDepartmentid() + "','" + course.getDepartment() + "')"; //创建数据库链接 Connection conn = DBUtil.getConn(); Statement state = null;

Convert a php resultset into an array

自古美人都是妖i 提交于 2020-01-06 12:49:28
问题 I am trying to convert a php resultset into an array (using foreach), I'm not quite doing it right.. I have a resultset: $result I am looping through it as below: (horribly wrong) while($row = mysql_fetch_array($result)) { foreach (mysql_fetch_array($result) as $k => $v) { echo "Fred's $k is ". $v['uid']. "\n"; } } I want this array to be in the below format: Array ( [0] => Array //row1 ( [column1] => value [column2] => value [column3] => value . . ) [1] => Array //row2 ( [column1] => value

Java SQL (JDBC) : how to move to the next column?

↘锁芯ラ 提交于 2020-01-05 12:23:10
问题 I'm trying to check if the " Username " and " Email " arguments in my constructor are existed in the SQL Table. this is my code: public DB(String usr, String eml, String pwd) { this.usr = usr; this.eml = eml; this.pwd = pwd; String jdbcUrl = "jdbc:mysql://localhost:3306/registered"; String jdbcUser = "...."; String jdbcPassword = "...."; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword); statement = connection

期末测试javaweb,考勤系统后台

為{幸葍}努か 提交于 2020-01-05 10:58:55
package com.hjf.dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.hjf.entity.Course; import com.hjf.util.DBUtil; /** * 课程Dao * Dao层操作数据 * @author Hu * */ public class CourseDao { /** * 添加 * @param course * @return */ public static boolean add(Course course) { String sql = "insert into bumeng(departmentid,department) values('" + course.getDepartmentid() + "','" + course.getDepartment() + "')"; //创建数据库链接 Connection conn = DBUtil.getConn(); Statement state = null;

Java之JDBC-(看这篇就够了)

余生颓废 提交于 2020-01-04 14:36:38
Java之JDBC-(看这篇就够了) JDBC (Java DB Connection)—Java数据库连接 一、ODBC到JDBC的发展历程(看一眼就可以) 自从Java语言于1995年5月正式公布以来,Java风靡全球。出现大量的用java语言编写的程序,其中也包括数据库应用程序。由于没有一个Java语言的API,编程人员不得不在Java程序中加入C语言的ODBC函数调用。这就使很多Java的优秀特性无法充分发挥,比如平台无关性、面向对象特性等。随着越来越多的编程人员对Java语言的日益喜爱,越来越多的公司在Java程序开发上投入的精力日益增加,对java语言接口的访问数据库的API的要求越来越强烈。也由于ODBC的有其不足之处,比如它并不容易使用,没有面向对象的特性等等,SUN公司决定开发一Java语言为接口的数据库应用程序开发接口。在JDK1.x版本中,JDBC只是一个可选部件,到了JDK1.1公布时,SQL类包(也就是JDBCAPI)就成为Java语言的标准部件。 二、JDBC技术及使用详解 通过JDBC操作数据库——步骤: 第1步:注册驱动 (只做一次) 第2步:建立连接(Connection) 第3步:创建执行SQL的语句(Statement) 第4步:执行语句 第5步:处理执行结果(ResultSet) 第6步:释放资源 第一步:加载驱动 注册驱动有三种方式: