import java.sql.*;public class JDBCTest{ public static void main(String[] args) { String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名scutcs String url = "jdbc:MySQL://127.0.0.1:3306/lilihao"; // MySQL配置时的用户名 String user = "root"; // MySQL配置时的密码 String password = ""; try { // 加载驱动程序 Class.forName(driver); // 连续MySQL 数据库 Connection conn = DriverManager.getConnection(url, user, password); if (!conn.isClosed()) { System.out.println("Succeeded " + "connecting to the Database!"); } // statement用来执行SQL语句 Statement statement = conn.createStatement(); // 要执行的SQL语句 String sql = "select * from tb_public_0005 a,tb_trade_0045 b where b.f0045_004v=a.f0005_001v and a.f0005_005v='001001' limit 0,10"; // 结果集 ResultSet rs = statement.executeQuery(sql); System.out.println("-----------------"); System.out.println("执行结果如下所示:"); System.out.println("-----------------"); System.out.println(" 学号" + "\t" + " 姓名"); System.out.println("-----------------"); String name = null; while (rs.next()) { // 选择f0005_001v这列数据 name = rs.getString("f0005_001v"); // 首先使用ISO-8859-1字符集将name解码为字节序列并将结果存 //储新的字节数组中。然后使用GB2312字符集解码指定的字节数组. name = new String( name.getBytes("ISO-8859-1"), "GB2312"); // 输出结果 System.out.println( rs.getString("f0005_002v") + "\t" + name); } rs.close(); conn.close(); } catch (ClassNotFoundException e) { System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }}
把代码都嵌入到JSP里面是违反MVC设计准则的,这会让你的代码难维护,如果万一出错了,页面上显示的哪一行你都找不到(不是实际指出的那行,还要找编译好的对应的servlet)让上面代码运行,把它改写为一个类或Beanl就可以了,其实也就一分钟的事儿,把main改成函数,然后在jsp里面import它,new一个bean类,调用这个方法,很快,还好调试,何乐而不为呢?其实还有更好的封装方法,等你用了hibernate就知道了。
在jsp页面里写<%> String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名scutcs String url = "jdbc:MySQL://127.0.0.1:3306/lilihao"; // MySQL配置时的用户名 String user = "root"; // MySQL配置时的密码 String password = ""; try { // 加载驱动程序 Class.forName(driver); // 连续MySQL 数据库 Connection conn = DriverManager.getConnection(url, user, password); if (!conn.isClosed()) { System.out.println("Succeeded " + "connecting to the Database!"); } // statement用来执行SQL语句 Statement statement = conn.createStatement(); // 要执行的SQL语句 String sql = "select * from tb_public_0005 a,tb_trade_0045 b where b.f0045_004v=a.f0005_001v and a.f0005_005v='001001' limit 0,10"; // 结果集 ResultSet rs = statement.executeQuery(sql); System.out.println("-----------------"); System.out.println("执行结果如下所示:"); System.out.println("-----------------"); System.out.println(" 学号" + "\t" + " 姓名"); System.out.println("-----------------"); String name = null; while (rs.next()) { // 选择f0005_001v这列数据 name = rs.getString("f0005_001v"); // 首先使用ISO-8859-1字符集将name解码为字节序列并将结果存 //储新的字节数组中。然后使用GB2312字符集解码指定的字节数组. name = new String( name.getBytes("ISO-8859-1"), "GB2312"); // 输出结果 System.out.println( rs.getString("f0005_002v") + "\t" + name); } rs.close(); conn.close(); } catch (ClassNotFoundException e) { System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }</%>
简单方法:把main方法里的内容全部复制到html页面的<body></body>标签中,用<%%>把代码扩起来,把System.out.println();方法的System关键字去掉,最后在html页面顶部加上:<%@ page pageEncoding="utf-8" contentType="text/html;charset=utf-8" import="java.lang.util"%>,import里面是你要添加的包路径,用逗号分隔,把你这个类的最顶部的import后面的每条内容都复制到html页面的import中就可以了,注意用逗号分隔啊。
1. 把 public static void main(String[] args) 改成 public static void sthABC() ;2. 在 jsp 页面中 import JDBCTest类.3. 在 jsp页面某处调用(随便哪里) <% JDBCTest.sthABC(); %> 最这么一句,就足够了4. 如果你想把sysout的内容打印到浏览器看, 那就把所有的System.out.println,都改成out.println5. 完事!
1、建一个jsp 页面,导入相应的包。2、把上面的类放到<% %>中,把main方法的参数去掉(在jsp 中不需要程序入口方法main,最简单的方法:去掉main的参数就行了。)。3、在上面的<% %>中的最后面,加入JDBCTest.main();4、把所有的System.out.println,都改成out.println.