据我所知,
可以更改可变字符串,并且不能更改不可变字符串.
在这里,我想像这样更改String的值,
String str="Good";
str=str+" Morning";
Run Code Online (Sandbox Code Playgroud)
和其他方式是,
StringBuffer str= new StringBuffer("Good");
str.append(" Morning");
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我试图改变其价值str.任何人都可以告诉我,这两种情况有什么不同,并给我清晰的可变和不可变对象的图片.
我正在写一个servlet,因为如果发生任何异常,我不想在浏览器上显示异常/错误消息,所以我将重定向到我的自定义错误页面.所以我这样做了:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try{
//Here is all code stuff
}catch(Exception e){
request.getRequestDispatcher("/ErrorPage.jsp").forward(request, response);
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法,如果我错了请纠正我,如果有更好的机制请告诉我.
我正在使用Hibernate执行select选项,Query正在执行但在query.list()方法中获得异常,
这是我的代码,
String hql="select a.vehicleno, a.lat, a.lng, a.status, a.rdate, a.rtime from LatitudeBean a, VehicleRegisterBean b where a.vehicleno=b.vehicleno and b.clientid= :clientId and b.groupid in(select groupid from GroupDetails where groupname= :groupname and clientid= :gdclientId)"; // valid query
Query query =sessio.createQuery(hql);
List<LatitudeBean> groupList = (List<LatitudeBean>)query.list(); //Here I am getting exception
for(LatitudeBean arr : groupList){
System.out.println(arr.getVehicleno());
}
Run Code Online (Sandbox Code Playgroud)
例外是,
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.aurodisplay.its.beans.LatitudeBean
at com.abc.its.controller.LoginController.doPost(LoginController.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at …Run Code Online (Sandbox Code Playgroud) 我对休眠非常陌生,所以我正在通过观看视频教程进行练习。我关注的链接是
https://www.youtube.com/watch?v=FFMOZY4z6bE&list=PL4AFF701184976B25&index=5
这是eclipse中的简单java项目。这里我使用mysql数据库。这是我的 Hibernate.cfg.xml 文件,
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/hibernatedb 根 root
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MYSQLDialect</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
<!-- Names the annotated entity class -->
<mapping class="com.***.dto.UserDetails"/>
Run Code Online (Sandbox Code Playgroud)
我遇到这种错误,
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See …Run Code Online (Sandbox Code Playgroud) 我试图将一个日期插入mySql数据库.我接受日期作为字符串并将其解析为util.Date然后将其转换为sql.Date然后我插入数据库.这是我的代码
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
String mydate=dsd.getDoa();
Date mydate2=format.parse(mydate);
java.sql.Date sqlDate;
sqlDate = new java.sql.Date(mydate2.getTime());
System.out.println("Date"+sqlDate.getDate()+"Month"+sqlDate.getMonth()+"Year"+sqlDate.getYear());
....
int i=st.executeUpdate("insert into device_sales_details values("+sqlDate+"));
Run Code Online (Sandbox Code Playgroud)
错误如下,
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '1980' for column 'device_sales_details_DOA' at row 1
在Sysout为遵循输入打印22/12/2014
Date22Month11Year114 如何解决这个问题,请任何人帮助我.
其实我不是很清楚,所以我在这里提出了一个问题,我也是位计算的新手。我的场景是这样的,我从CAN(A hardware device)获得一些十六进制值,对于一个特定的值,我必须读取第 4 个字节,在第 4 个字节中,第 5 位和第 6 位的值决定要写入的输出,我的意思是如果第 5 和第 6 位是 00= off , 01= on 像这样。所以我的问题是,我们如何从十六进制中读取第 4 个或任何特定字节以及字节中的特定位。如果可能,请给我一些指导或示例或任何教程站点。我用谷歌搜索了很多但没有用。请帮助我。我希望这在java中完成。
我在hql中编写一个select查询,我的任务是激活总线.首先,我将从客户端获取一个消息busId#busStatus,所以首先我寻找这个特定的busId是活动的还是非活动的所以我必须编写select查询但是在hibernate query.list()返回list.在这里我认为列表是不必要的,单个对象就足够了.
这是我的代码,
String hql="from BusDetailBean where Busid= :busId and bus_status=:busStatus";
Query query = session.createQuery(hql);
query.setParameter("busId", busId);
query.setParameter("busStatus", busStatus);
List<BusDetailBean> busDetails=(List<BusDetailBean>)query.list();
if(busDetails.isEmpty())
{
//my other stuff
}
else
{
//bus ativation stuff
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如果列表不为空,则select查询只返回一个对象我必须在else部分中使用for循环.那么我该如何优化这段代码呢.任何人都可以帮助我.