老师 为什么我这里输出的是一个地址呢
老师,可以用Navicat连接SQL Server吗
老师,为啥我这里修改了 中文 读出来还是乱码呢?
package com.itbz; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; public class JDBCTest { public static void main(String[] args) throws ClassNotFoundException, SQLException { //连接MYSQL数据库的url String url="jdbc:mysql://localhost:3306/itbz"; //连接数据库的用户名 String name="root"; //连接数据库的密码 String password="root"; //通过反射实现数据库启动的加载与注册 Class.forName("com.mysql.jdbc.Driver"); Connection connection=DriverManager.getConnection(url,name,password); } }
老师,麻烦帮我看看这个异常是怎么回事呀?
输出结果的时候上面这个信息是?
灰色的?
tostring 有什么用
package com; import com.mysql.jdbc.PreparedStatement; import java.sql.Connection; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; public class DynamicConditionQuertTest { /** * 动态条件查询Users */ public List<Users> queryUser(Users users){ List<Users> list = new ArrayList<>(); Connection connection = null; PreparedStatement ps = null; ResultSet rs = null ; try { //创建链接 connection = jdbcUtill.getConnection(); //拼接查询sql语句 String sql = this.generateSql(users); System.out.println(sql); //创建PreparedStatement对象 ps = (PreparedStatement) connection.prepareStatement(sql); //执行sql rs = ps.executeQuery(); while (rs.next()){ Users users1 = new Users(); users1.setUserid(rs.getInt("userid")); users1.setUserage(rs.getInt("userage")); users1.setUsername(rs.getString("username")); list.add(users1); } }catch (Exception e){ e.printStackTrace(); }finally { jdbcUtill.closeResource(rs,ps,connection); } return list; } /** * 生成动态条件查询sql * @param */ public String generateSql(Users users){ StringBuffer sb = new StringBuffer("select * from users where 1=1"); if (users.getUserid()>0){ sb.append("and userid = ").append(users.getUserid()); } if(users.getUsername()!=null&&users.getUsername().length()>0){ sb.append("and username = '").append(users.getUsername()).append("'"); } if (users.getUserage()>0){ sb.append("and userage =").append(users.getUserage()); } return sb.toString(); } public static void main(String[] args) { DynamicConditionQuertTest dcq = new DynamicConditionQuertTest(); Users users1 = new Users(); users1.setUsername("xiaoming"); users1.setUserage(23); List<Users> list = dcq.queryUser(users1); for (Users users2 :list){ System.out.println(users2.getUserid()+" "+users2.getUsername()+" "+users2.getUserage()); } } }
异常报错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'username = 'xiaoming'and userage =23' at line 1
我没加限定条件
users1.setUsername("xiaoming"); users1.setUserage(23);
是没报错的,加了反而报错不知道为什么,老师看一下
老师第四题可以这么写吗
Tue Apr 26 09:19:41 CST 2022 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
老师这个是啥子原因喃,我导入了能够jar包,用的数据库也是5.7.30版本的
运行报错了,老师看一下怎么改
老师帮我看一下如何解决报错,
我在网上查的有四种原因:
一:连接URL格式出现了问题(Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/XX”,“root”,“XXXX”)
二:驱动字符串出错(com.mysql.jdbc.Driver)
三:Classpath中没有加入合适的mysql_jdbc驱动(驱动要和你的数据库版本一致)
四:驱动jar包放的位置不对
把驱动包mysql-connector-java-5.0.5-bin.jar放到jdk/jre/lib/ext里面
我试了下都不行
老师。添加了唯一索引算不算添加了唯一约束喃
我的是什么问题?
/** *Test类 */ package com.itbaizhan; public class Test { public static void main(String[] args) { StatementTest st =new StatementTest(); st.insertUser("hxf",25); } } package com.itbaizhan; import java.sql.Connection; import java.sql.Statement; /** * Statement对象的使用 */ public class StatementTest { public void insertUser(String username,int userage){ Connection connection =null; Statement statement =null; try { //获取Connection对象 connection=JdbcUtils.getConnection(); //获取Statement对象 statement=connection.createStatement(); //定义需要执行的SQL语句 String sql ="insert into users values(default,'"+username+"',"+userage+")"; //执行SQL,返回boolean值,如果sql有结果集返回,那么返回值为true,如果没有结果集返回,则返回false。 boolean execute =statement.execute(sql); System.out.println(execute); }catch (Exception e){ e.printStackTrace(); }finally { JdbcUtils.closeResource(statement,connection); } } } package com.itbaizhan; import java.io.InputStream; import java.sql.*; import java.util.Properties; /** * Jdbc工具类 */ public class JdbcUtils { private static String url; private static String name; private static String pwd; static { try{ //实例化properties对象 Properties prop=new Properties(); //获取读取properties文件的字节输入流对象 InputStream is = JdbcTest2.class.getClassLoader().getResourceAsStream("jdbc.properties"); //读取properties文件并解析 prop.load(is); //获取链接数据库的url,用户名,密码 String url = prop.getProperty("url"); String name = prop.getProperty("username"); String pwd = prop.getProperty("pwd"); //获取数据库驱动全名 String driver = prop.getProperty("driver"); //加载并注册驱动 Class.forName(driver); }catch ( Exception e){ e.printStackTrace(); } } //获取数据库链接对象 public static Connection getConnection(){ Connection connection = null; try { connection = DriverManager.getConnection(url,name,pwd); } catch (SQLException e) { e.printStackTrace(); } return connection; } //关闭数链接对象 public static void closeConnection(Connection connection){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } //提交事务 public static void commit(Connection connection){ try { connection.commit(); } catch (SQLException e) { e.printStackTrace(); } } //回滚事务 public static void rollback(Connection connection){ try { connection.rollback(); } catch (SQLException e) { e.printStackTrace(); } } //关闭Statement对象 public static void closeStatement(Statement statement){ try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } //关闭ResultSet public static void closeResultSet(ResultSet resultSet){ try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } //DML操作时关闭资源 public static void closeResource(Statement statement,Connection connection){ //先关闭Statement对象 closeStatement(statement); //后关闭Connection对象 closeConnection(connection); } // //查询时关闭资源 public static void closeResource(ResultSet resultSet,Statement statement,Connection connection){ //先关闭ResultSet closeResultSet(resultSet); //在闭Statement对象 closeStatement(statement); //最后关闭Connection对象 closeConnection(connection); } } #连接Mysql数据库的URL url=jdbc:mysql://localhost:3306/itbz?useSSL=false&useUnicode=true&characterEncoding=utf-8 #连接数据库的用户名 username=root #连接数据库的密码 pwd=root #数据库驱动名称 driver=com.mysql.jdbc.Driver
老师,我代码查了几遍,url也试了,在上节课的案例中不通过工具类链接数据库是不报错的,工具类的代码检查几遍后不懂哪里出错了,您能帮我看看吗
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637