• Mysql与web之间的数据、查询等个问题


    Mysql与web之间的数据、查询等个问题

    	在自己写的一个jsp主页连接数据库出现的各种问题,写记下来与大家分享,共勉。最后附jdbc代码。
    								---DanlV
    

    Error

    1---错误代码:

    javax.servlet.ServletException com.microsoft.sqlserver.jdbc.SQLServerException 索引 1 超出范围
    问题描述:是由于 sql语句中的?是中文,所以显示索引号错误

    解决方案

    解决方案:将中文问号改为英文问号。

    2---链接指空

    在其他都对的情况下,包括驱动正确,sql包正确登情况下,莫名出现connectin指空,可能是Tomcat服务器中有其他的工程。

    解决方案

    删除tomcat服务器中其他的工程,再次重启tomcat服务器,就连接上了。

    3---错误描述

    no suitable driver for jdbc
    错误jsp页面导致结果:Connection 返回结果为空

    解决方案

    原因:
    1.没有导入sqljdbc。jar(这个错误一般不会犯)
    2.数据库错误(账号密码等)
    3.引入driver= 的驱动根目录最后去掉后缀
    4.在webContent/WEB-INF/bin/中放入sqljdbc.jar,然后右键构建路劲
    ***重点!!!! ***
    直接将sqljdbc放在根目录下,再进行构建路劲,有时会造成此错误,原因不明。但是,根目录下sqljdbc构建路径,纯java写法连接数据库是成功的,但是在jsp页面中是找不到驱动,造成此错误。此错误很误导人,让人以为是jdbc的问题,其实并不是。

    JDBC

    package zhangze;
    
    import java.sql.*;
    
    
    public class DBUtils {
    
    private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String URL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName= *****";
    private static final String USERNAME="****";
    private static final String PASSWORD="****.";
    private static Connection conn;
    
    //?????
    static{
    	try {
    		//??????
    		System.out.println(DRIVER);
    		Class.forName(DRIVER);
    	} catch (ClassNotFoundException e) {
    		e.printStackTrace();
    	}
    }
    
    //????????????
    public static Connection getConn(){
    	try {
    		if(conn == null || conn.isClosed()){
    			conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
    		}
    	} catch (SQLException e) {
    		e.printStackTrace();
    	}
    	return conn;
    }
    
    
    public static void close(ResultSet rs,PreparedStatement ps,Connection conn){
    	try {
    		if(rs != null)rs.close();
    		if(ps != null)ps.close();
    		if(conn != null)conn.close();
    	} catch (SQLException e) {
    		e.printStackTrace();
    
    
    
    	}
    }
    }
    
    在jsp文件头部导入 
     <%@page import="zhangze.DBUtils"%>
    <%@ page import="java.sql.*"%> 
    之后再
    <%
    String sql="select * from photo where id=1";//连接数据库
    Connection conn= DBUtils.getConn();//获取连接
    out.print("<script>alert("+conn+")</script>");
    PreparedStatement ps = conn.prepareStatement(sql);//获取处理命令
    ResultSet rs=ps.executeQuery();//执行查询 
    if(rs.next())
    	out.println(rs.getString(2));
    rs.close();
    %>
  • 相关阅读:
    AWK 思维导图
    Foreach嵌套Foreach速度慢优化方案
    tp框架where条件查询数据库
    TP如何进行批量查询
    判断是否是爬虫在访问网站
    Mysql数据库配置文件my.cnf详解
    mysql中数据导出成excel文件语句
    大型网站的灵魂——性能
    电商系统中的商品模型的分析与设计
    大型网站系统架构的演化
  • 原文地址:https://www.cnblogs.com/shenze/p/7143443.html
Copyright © 2020-2023  润新知