【无标题】javaweb学习/useUnicode=true&characterEncoding=UTF-8 &报错


JavaWeb /IDEA初步学习遇到的问题

1 .mysql数据库连接问题

Class.forName("com.mysql.cj.jdbc.Driver");//注册驱动
    老版本的mysql是:com.mysql.jdbc.Driver;
    新版本的mysql需要添加 .cj 进行注册驱动
 String url="jdbc:mysql://127.0.0.1:3306/db1?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8&useServerPrepStmts=true";
 //补充
 <property name="url" value="jdbc:mysql://127.0.0.1:3306/db1?useUnicode=true&amp;characterEncoding=UTF-8&amp;userSSL=false&amp;serverTimezone=GMT%2B8&amp;useServerPrepStmts=true"/>
    String username="root";
    String passswd="root";

//在此更新一下&报错问题 原因是IDEA字符识别方面有错误,将**&改为&amp,**即可

在这里插入图片描述在这里插入图片描述

关于URL问题,本机数据库默认127.0.0.1,3306端口,新版本的IDEA需要加上数据库后面的字符串。
在这里插入图片描述数据库的连接可以在IDEA的右边找到Database进场测试连接。

2.Jdbc API使用
(1)DriverManager
用于加载JDBC驱动并且创建于数据库的连接。

Connection conn = DriverManager.getConnection(url, username, passswd);

(2)Connection
代表Java程序与数据库的连接,只有获得该连接对象后才能访问数据库。

Connection connection=dataSource.getConnection();

(3)Statement
用于执行静态的SQL语句,并返回一个结果对象。该接口的对象通过Connection实例的createStatement()方法获得。

Statement statement = conn.createStatement();

(4)Preparestatement
是Statement的子接口,用于执行预编译的SQL语句。该接口扩展了带有参数SQL语句的执行操作,引用该接口中的SQL语句可以使用占位符“?”来代替其参数,然后通过setXxx()方法为SQL语句的参数赋值。其用来预防sql注入语句(‘’or’1’=’1’)

PreparedStatement preparedStatement = conn.prepareStatement(sql);

代码具体如下:

public class Jdbc {
    public static void main(String[] arg ) throws Exception{
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url="jdbc:mysql://127.0.0.1:3306/db1?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8&useServerPrepStmts=true";
        String username="root";
        String passswd="****";
       Connection conn = DriverManager.getConnection(url, username, passswd);
       String name="张三";
       String pass="123";
       String sql="select * from player where username=? and passwd=?";
        PreparedStatement preparedStatement = conn.prepareStatement(sql);
         preparedStatement.setString(1,name);
         preparedStatement.setString(2,pass);
         ResultSet resultSet=preparedStatement.executeQuery();
        if(resultSet.next()){
            System.out.println("登陆成功");
        }else{
            System.out.println("登陆失败");
        }
        
       /*String sql="select * from player where username='"+name+"' and passwd='"+pass+"'";
       System.out.println(sql);

       Statement statement=conn.createStatement();

       ResultSet resultSet=statement.executeQuery(sql);

       if(resultSet.next()){
           System.out.println("登陆成功");
       }else{
           System.out.println("登陆失败");
       }*/

     /*  String sql="select * from account";
        Statement statement = conn.createStatement();
        ResultSet resultSet=statement.executeQuery(sql);
        List<Account> list =new ArrayList<>();
        while(resultSet.next()){
            Account account=new Account();
           int id= resultSet.getInt("id");
           String name=resultSet.getString("name");
           Double salsry=resultSet.getDouble("money");
           account.setId(id);
           account.setName(name);
           account.setSalsry(salsry);
           list.add(account);
        }
        System.out.println(list);
*/
        conn.close();
        preparedStatement.close();
        resultSet.close();
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
// 先连接数据库 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/javaweb?useUnicode=true&characterEncoding=UTF-8"; String username="root"; String password=""; Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/environment?charaterEncoding=utf-8","root","123456"); request.setCharacterEncoding("UTF-8");//设置字符编码,避免出现乱码 double time1 = Double.parseDouble(request.getParameter("time1")); double time2 = Double.parseDouble(request.getParameter("time2")); String sql = "select * from cx where time>=? and time<=?"; PreparedStatement preparedStatement = conn.prepareStatement(sql); preparedStatement.setDouble(1,time1); preparedStatement.setDouble(2,time2); ResultSet resultSet = preparedStatement.executeQuery();//执行sql语句用来返回单个 ResultSet 对象 resultSet.last();//移动到最后一条记录 %> <center> 在此段时间内共有 <font size="5" color="red"><%=resultSet.getRow()%></font>条记录 <table border="2" bgcolor="rgba(216, 191, 216, 0.5)" width="650"> <tr> <td>温度</td> <td>湿度</td> <td>光照</td> <td>时间</td> </tr> <% resultSet.beforeFirst(); while (resultSet.next()){ %> <tr align="center"> <td><%=resultSet.getString("temperature")%></td> <td><%=resultSet.getString("humidity")%></td> <td><%=resultSet.getString("guangzhao")%></td> <td><%=resultSet.getString("time")%></td> </tr> <%}%> </table> </center> <% if (resultSet!=null){ resultSet.close(); } if (preparedStatement!=null){ preparedStatement.close(); } if (conn!=null){ conn.close(); } %> 找出这段代码的错误
05-27

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值